PHP ile, sunucuya dosya yüklemek kolaydır.
kolaylığı tehlike geliyor dosya yüklemeleri sağlayan Ancak, bu nedenle her zaman dikkatli olun!
Yapılandır "php.ini" dosyası
İlk olarak, PHP dosyası yüklemelere izin vermek üzere yapılandırılmış olduğundan emin olun.
Sizin de "php.ini" dosyası, file_uploads direktif arayabilir ve Açık olarak ayarlayın:
file_uploads = On
HTML Form oluştur
Sonra, kullanıcıların yüklemek istediğiniz resim dosyasını seçmek için izin HTML formu oluşturmak:
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post"
enctype="multipart/form-data">
Select
image to upload:
<input type="file" name="fileToUpload"
id="fileToUpload">
<input
type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
Bazı kurallar Yukarıdaki HTML form için takip etmek:
- Form yöntemi kullandığından emin olun = "post"
- Bir şekilde de ihtiyaç following = "çok parçalı / form-" enctype: özniteliği. Bu formu göndermeden yaparken hangi içerik türünü belirtir
Yukarıdaki şartlara olmadan, dosya yükleme çalışmaz.
Başka şeyler fark:
- type="file" bir nitelik <input> etiketi taşıyan bir dosya seçim kontrol olarak giriş alanını gösterir "Browse" butonuna giriş kontrolün yanında
Form yukarıda adı verilen bir dosyaya veri gönderir "upload.php" Önümüzdeki yaratacak.
Dosya Yükle PHP Script oluştur
"upload.php" dosya bir dosya yüklemek için bir kod içerir:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType =
pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a
actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo
"File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
?>
PHP açıkladı:
- $ target_dir = "uploads/" - Dosya yerleştirilmiş olacak dizini belirtir
- $ Target_file dosyasının yolunu yüklenmesine belirtir
- $ uploadOk = 1 henüz kullanılmamaktadır (will be used later)
- $ ImageFileType dosyasının dosya uzantısını tutar
- görüntü dosyası gerçek bir görüntü ya da sahte görüntü ise Ardından, kontrol
Not: adlı yeni bir dizin oluşturmanız gerekir "uploads" dizininde "upload.php" dosyası bulunur. Yüklenen dosyalar orada kaydedilir.
Dosya Zaten olmadığını kontrol edin
Şimdi bazı kısıtlamalar ekleyebilir.
Dosya zaten mevcutsa İlk olarak, kontrol edecek "uploads" klasöründe. Eğer varsa, bir hata mesajı görüntülenir ve $ uploadOk 0'a ayarlanır:
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
Sınır Dosya Boyutu
Yukarıdaki HTML biçiminde dosya giriş alanı olarak adlandırılır "fileToUpload" .
Şimdi, dosyanın boyutunu kontrol etmek istiyorum. Dosya 500kb daha büyükse, bir hata mesajı görüntülenir ve $ uploadOk 0'a ayarlanır:
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
Sınır Dosya Türü
yalnızca aşağıda kod kullanıcıların JPG, JPEG, PNG ve GIF dosya için izin verir. Tüm diğer dosya türleri 0'a $ uploadOk ayarlamadan önce bir hata mesajı verir:
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType
!= "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
Komple Dosya Yükle PHP Script
Tam "upload.php" dosyasını şimdi şöyle görünür:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType =
pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a
actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo
"File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already
exists
if (file_exists($target_file)) {
echo
"Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType
!= "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if
($uploadOk == 0) {
echo "Sorry, your file was not
uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been
uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
PHP Dosya Sistemi Referans tamamlayın
Dosya sistemi fonksiyonları tam referans için lütfen tüm gidin PHP Dosya Sistemi Referans .