En son web geliştirme öğreticiler
 

PHP 5 Dosya Yükleme


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 .