tutorial pengembangan web terbaru
 

PHP 5 Upload File


Dengan PHP, mudah untuk meng-upload file ke server.

Namun, dengan mudah datang bahaya, jadi selalu berhati-hati ketika memungkinkan file upload!


Konfigurasi The "php.ini" Berkas

Pertama, pastikan bahwa PHP dikonfigurasi untuk memungkinkan file upload.

Dalam Anda "php.ini" berkas, mencari file_uploads direktif, dan set ke On:

file_uploads = On

Buat Form HTML

Berikutnya, membuat bentuk HTML yang memungkinkan pengguna untuk memilih file gambar yang mereka ingin meng-upload:

<!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>

Beberapa aturan untuk mengikuti untuk bentuk HTML di atas:

  • Pastikan bahwa bentuk menggunakan metode = "post"
  • Bentuknya juga membutuhkan following atribut: enctype = "multipart / form-data". Ini menentukan yang konten-jenis untuk digunakan ketika mengirimkan formulir

Tanpa persyaratan di atas, file upload tidak akan bekerja.

Hal-hal lain untuk melihat:

  • The type="file" atribut dari <input> tag menunjukkan field input sebagai kontrol berkas-pilih, dengan "Browse" tombol di samping kontrol input

Form diatas mengirimkan data ke sebuah file yang bernama "upload.php" , yang akan kita buat berikutnya.


Buat The Upload file PHP Script

The "upload.php" file berisi kode untuk meng-upload file:

<?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;
    }
}
?>

Script PHP menjelaskan:

  • $ target_dir = "uploads/" - menentukan direktori dimana file tersebut akan ditempatkan
  • $ Target_file menentukan path dari file yang akan di-upload
  • $ uploadOk = 1 tidak digunakan belum (will be used later)
  • $ ImageFileType memegang ekstensi file dari file
  • Berikutnya, memeriksa apakah file gambar adalah gambar sebenarnya atau gambar palsu

Catatan: Anda akan perlu untuk membuat direktori baru bernama "uploads" di direktori mana "upload.php" berkas berada. file yang diupload akan disimpan di sana.


Periksa apakah Berkas Sudah Ada

Sekarang kita dapat menambahkan beberapa pembatasan.

Pertama, kita akan memeriksa apakah file sudah ada di "uploads" folder. Jika tidak, pesan kesalahan ditampilkan, dan $ uploadOk diatur ke 0:

// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}

Ukuran batas Berkas

Field input file dalam bentuk HTML kita di atas bernama "fileToUpload" .

Sekarang, kita ingin memeriksa ukuran file. Jika file lebih besar dari 500KB, pesan kesalahan ditampilkan, dan $ uploadOk diatur ke 0:

 // Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}

Jenis batas Berkas

Kode di bawah ini hanya memungkinkan pengguna untuk meng-upload JPG, JPEG, PNG, dan GIF. Semua jenis file lain memberikan pesan kesalahan sebelum menetapkan $ uploadOk ke 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;
}

Lengkap Upload file PHP Script

Lengkap "upload.php" File sekarang terlihat seperti ini:

<?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.";
    }
}
?>

Lengkapi PHP Filesystem Referensi

Untuk referensi lengkap fungsi filesystem, pergi ke kami lengkap PHP Filesystem Referensi .