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 .