- File . bukan folder atau link.
- File tersebut bisa gambar, dokumen atau lainnya.
- Besarnya dibawah 1MB. Kita tidak akan setting di PHP atau APACHE.
- dan lain-lain.
Aku pastikan kalau tutorial ini berguna |
Seperti yang kita ketahui hasil yang didapat adalah:
Tetapi kita tidak akan memakai nama array yaitu files[]. Alasannya karena kita berikutnya akan melakukan upload file banyak jadi bukan cuma 1! Asumsi ketika kita melakukan upload, ini yang akan kita dapatkanArray ( [file] => Array ( [name] => [21].jpg [type] => image/jpeg [tmp_name] => C:\xampp\tmp\php15B5.tmp [error] => 0 [size] => 153108 ) )
Array
(
[files] => Array
(
[name] => Array
(
[0] => 1148287p.jpg
[1] => 298624_522637407761939_611849061_n.jpg
)
[type] => Array
(
[0] => image/jpeg
[1] => image/jpeg
)
[tmp_name] => Array
(
[0] => C:\xampp\tmp\php194E.tmp
[1] => C:\xampp\tmp\php195E.tmp
)
[error] => Array
(
[0] => 0
[1] => 0
)
[size] => Array
(
[0] => 18775
[1] => 29777
)
)
)
saya perkecil agar mudah dipahami.
ini adalah file yang saya gunakan.. silakan download lalu kesini lagi untuk membaca penjelasannya. Semua file tidak perlu di edit, kecuali anda menginginkannya. Berikut adalah penjelasannya
Pertama kita harus memasukkan file penting kendoui ke dalam html kita yaitu upload.htm yaitu file CSS dan JS
- kendo.common.min.css
- kendo.default.min.css
- jquery.min.js
- kendo.web.min.js
<link href="../styles/kendo.common.min.css" rel="stylesheet">
<link href="../styles/kendo.default.min.css" rel="stylesheet">
<script src="../js/jquery.min.js"></script>
<script src="../js/kendo.web.min.js"></script>
Berikutnya kita akan memakai form standar, tetapi ternyata versi kendoui ini tidak membutuhkan enctype sehingga kita bisa langsung menulis
<form method="post" action="003a.php" style="width:45%">
<div>
<input name="files[]" id="files" type="file" />
<p>
<input type="submit" value="Submit" class="k-button" />
</p>
</div>
</form>
Kita mulai penjelasan dari atas dahulu.
- Action adalah target file yang kita akan masuki. Ganti dengan yang lain.
- Name sebisa mungkin array.
Asumsinya kamu menjalankannya di offline, jadi kita akan dapatkan bentuknya array seperti di atas.
Array
(
[files] => Array
(
[name] => Array
(
[0] => 1148287p.jpg
[1] => 298624_522637407761939_611849061_n.jpg
)
[type] => Array
(
[0] => image/jpeg
[1] => image/jpeg
)
[tmp_name] => Array
(
[0] => C:\xampp\tmp\php194E.tmp
[1] => C:\xampp\tmp\php195E.tmp
)
[error] => Array
(
[0] => 0
[1] => 0
)
[size] => Array
(
[0] => 18775
[1] => 29777
)
)
)
Sekarang kita akan masuk ke mode keamanan. Pertama kita perhatikan disini ada banyak file yang terkirim, asumsinya akan banyak perulangan fungsi. Jadi yang harus kita lakukan adalah membuat fungsi untuk menangani upload tersebut. Karena ini masih belajar, jadi error tidak perlu ditampilkan.Pertama kita harus mengetahui jumlah file yang terupload.
$n=count($_FILES['files']['name'];dengan script di atas kita dapatkan 2. Sekedar sharing kita bisa pake sizeof tetapi semua kembali kebiasaan masing-masing. berikutnya kita pastikan file yang diupload hanya yang OK aka tidak error, juga semua harus dijalankan. maka kita buat berikutnya.
for($i=0;$i<$n;$i++)
{
if($_FILES['files']['error'][$i]==0)
uploadMyFile($i);
}
untuk fungsi uploadMyFile kita akan lakukan proses yang ditulis di atas yaitu:
CHECK TIPE FILE
Untuk mengecheck, kita bisa menggunakan $_FILES['files'][type] disini kita mendapatkan image/jpeg . Dari tipe ini kita bisa dapatkan apakah file yang di upload sesuai tipenya. Tetapi sayang, ternyata upload ini memiliki kekurangan dalam hal periksa file, karena file yang dikirim dibaca berdasarkan extension lalu baru tipe filenya di munculkan.Untuk scriptnya kita menggunakan fungsi mencari extension dari namanya.
$name=$_FILES['files']['name'][$i];
echo "<br>extension:".get_file_extension($name);
function get_file_extension($file_name)
{
return strtolower(substr(strrchr($file_name,'.'),1));
//http://davidwalsh.name/php-file-extension
//saya nambahin strtolower
}
UKURAN FILE
Kadang kita ingin mengatur minimal dari script bukan dari server. Jadi kita bisa melakukan pemeriksaan dari $_FILES['files']['size'] lalu di kasi perintah if dan bila ukurannya sekian lebih maka ditolak. perlu di ingatkan bahwa 1KB=1024 byte dan 1MB= 1024 x 1024byteif($size>1000000){
$err++;
}
lalu bila ada pemiksaan yang lain seperti pemeriksaan akunya valid untuk upload dapat kamu lakukan. Bila terjadi error, berikan error pada variable $err;
setelah semua selesai, dan tidak ada error baru lakukan copy, bila kamu merasa cocok dengan move_upload_file.. silakan digunakan.
Script di atas jangan di copy paste, karena hanya bersifat penjelasan. Copy paste script dibawah, perhatikan bahwa 003.php tidak ada script dibawah.
script lengkapnya:
http://pastebin.com/jkc7RGCX
Selamat mengupload!
Tidak ada komentar:
Posting Komentar