cara filter ekstensi file yang diunggah ?
cara-filter-ekstensi-file-yang-diunggah
Beberapa artikel tentang membuat unggahan skrip dengan PHP yang telah saya bahas di blog ini. Seperti membuat unggahan file tunggal, beberapa unggahan file, untuk mengunggah file unduhan dengan batas hak akses. Nah ... dalam artikel ini, ini memungkinkan pengguna untuk mengunggah file apa pun, alias tidak ada batasan pada jenis file atau ekstensi. Masalah berikutnya adalah, bagaimana membuat skrip untuk membatasi atau memfilter ekstensi file yang diunggah, misalnya hanya gambar file (.bmp, .jpg, atau .gif) dapat diunggah? Inilah yang akan kita diskusikan dalam artikel ini. Sebenarnya konsep memfilter ekstensi file yang diunggah mudah. Konsep ini pertama -tama kita membuat daftar atau daftar file ekstensi yang dapat diunggah terlebih dahulu. Daftar ini bisa berupa array, misalnya:
$extensionList = array("jpg", "bmp", "gif");
Selanjutnya, setelah pengguna mengklik kirim saat proses unggahan, langkah pertama adalah kita membaca nama file. Tujuan utama kami adalah mendapatkan file ekstensi. Untuk membaca nama file yang diunggah, kami menggunakan perintah:
$fileName = $_FILES['userfile']['name'];
Deskripsi 'UserFile' adalah nama komponen formulir untuk mengunggah file. Nama ini dapat diganti dengan apa pun, selama formulir komponen yang sama untuk diunggah. Setelah kami membaca nama file, maka kami meledak atau memecahkan nama file berdasarkan karakter dot (.). Secara umum, nama file dalam bentuk ‘xxxxx.yyy‘ dengan ‘xxxxx‘ adalah nama file, dan ‘yyy‘ adalah ekstensi.
$pecah = explode(".", $fileName);
Lalu ... apakah menurut Anda perpanjangan file setelah proses meledak berada di elemen array menjadi $ rusak? Yup ... itu adalah elemen array pertama. Nama file ada di elemen array ke -0. Oleh karena itu kami menggunakan perintah berikut untuk mendapatkan ekstensi file.
$ekstensi = $pecah[1];
Nah ... kami telah memperoleh file ekstensi, langkah selanjutnya adalah memeriksa apakah file ekstensi ada dalam daftar ekstensi yang diizinkan diunggah di atas. Untuk memeriksa keberadaan file ekstensi dalam daftar ekstensi, kami menggunakan fungsi in_array ($ ekstensi, $ extensionList). Fungsi ini akan benar jika file ekstensi yang akan diunggah terkandung dalam daftar ekstensi yang diizinkan. Dengan demikian proses unggahan itu sendiri hanya akan dijalankan jika nilai in_array () benar. Sedangkan jika nilainya salah, unggahan tidak dijalankan.
if (in_array ($ekstensi, $extensionlist))
{
// Proses unggah dijalankan
}
else
{
// Proses unggahan tidak dijalankan
}
Lengkapi skrip untuk mengunggah file yang dilengkapi dengan file ekstensi file yang saya berikan sebagai berikut.
form.html
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="20000000" />
Pilih File : <input name="userfile" type="file">
<input type="submit" name="submit" value="Upload" />
</form>
upload.php
<?php
$extensionList = array("bmp", "jpg", "gif");
$fileName = $_FILES['userfile']['name'];
$pecah = explode(".", $fileName);
$ekstensi = $pecah[1];
// nama direktori upload
$namaDir = 'data/';
// membuat path nama direktori + nama file.
$pathFile = $namaDir . $fileName;
if (in_array($ekstensi, $extensionList))
{
// memindahkan file ke temporary
$tmpName = $_FILES['userfile']['tmp_name'];
// proses upload file dari temporary ke path file
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $pathFile))
{
echo "File berhasil diupload.";
}
else
{
echo "File gagal diupload.";
}
}
else echo "File yang diupload bukan file image";
?>
Mudah untuk tidak membuatnya? Oke ... semoga artikel ini berguna.
Posting Komentar