20 January 2007

Upload File Dengan PHP


Mengirimkan file ke server adalah hal yang mudah bila dilakukan dengan menggunakan FTP client oftware, dan hal tersebutlah yang biasa kita lakukan.

Kali ini kita akan mencoba melakukannya dengan PHP. Artikel ini bisa digunakan bagi Anda yang kerkeinginan untuk membuat semacam file sharing atau photo gallery dan lain-lain.

Yang harus kita siapkan adalah sebagai berikut :

1. Apache server terinstall dengan baik.
2. PHP terinstall dengan baik.
3. Pengetahuan Anda tentang PHP
4. Pengetahuan Anda tentang CHMOD

Persiapan

Buatlah satu direktori pada server Anda dengan nama 'files', lalu buatlah permition direktori tersebut menjadi 777 dengan cara melakukan perintah chmod 777 files. Setelah selesai, marilah kita mulai membuat script php yang akan kita gunakan untuk meng-upload file.

Kode baris per baris.

$jumlahfile = 2;

Variable ini akan menentukan berapa jumlah form file yang akan di tampilkan pada saat user Anda mulai melakukan aktifitas upload.

$file_dir = dirname(__FILE__)."/files/";

Variable ini mendefinisikan dimanakah letak file-file yang akan di upload. Digunakan dua fungsi pada baris ini, yaitu dirname(string) berguna untuk mengetahui lokasi asli atau original path dari string.
Berikutnya adalah sebuah predefined variable yaitu __FILE__ yang dimasukkan sebagai string untuk fungsi dirname.
Variable tersebut menunjukkan ke arah script PHP yang sedang kita buat sekarang, kemudian ditambahkan dengan sub direktori bernama files.

if ($_POST) {

Sebuah kondisi yang melihat apakan user sudah menekan tombol submit atau menekan enter, jika sudah makan fungsi-fungsi berikutnya akan dijalankan. Bila belum maka fungsi-fungsi setelah tanda } akan dijalankan.

for ($i=0;$i<$jumlahfoto;$i++) {

Perintah di atas akan membuat script untuk melakukan perulangan dari fungsi dan perintah didalamnya sebanyak n yang telah ditentukan pada variable $jumlahfile.

if (trim($_FILES['by']['name'][$i])!="") {

Kondisi ini akan melihat apakah form yang sudah di submit oleh user mengandung file yang sudah diseleksi sebelumnya atau belum, jika sudah maka fungsi dan perintah di dalam kondisi ini akan dijalankan.

$newfile = $file_dir.$_FILES['by']['name'][$i];

Sekali lagi kita mendefinisikan sebuah variable bernama $newfile, yang tujuannya adalah membuat nama file yang akan di upload itu sesuai dengan nama aslinya sekaligus juga dengan direktori tempat file tersebut akan diletakkan.

move_uploaded_file($_FILES['by']['tmp_name'][$i], $newfile);

Perintah di atas akan membuat file-file yang sudah di upload ke direktori sementara pada server dipindahkan ke tempat dimana sudah kita sediakan dengan variable $newfile di atas.

print "<form method="post" enctype="multipart/form-data">";
for($i=0;$i<$ jumlahfile;$i++) {
print "<input type="file" name="by[]" size="30"><br>";
}

print "<input type="submit" name="action" value="Upload">";
print "</form>";

Kode-kode tersebut akan membuat sebuah tampilan form pada layar browserser Anda. Jumlah form untuk input file adalah sebanyak anda mendefinisikan variable $jumlahfile di atas.

Rangkuman Kode

<?php
$jumlahfile = 2;
$file_dir = dirname(__FILE__)."/files/";
if ($_POST) {
for ($i=0;$i<$jumlahfoto;$i++) {
if (trim($_FILES['by']['name'][$i])!="") {
$newfile = $file_dir.$_FILES['by']['name'][$i];
move_uploaded_file($_FILES['by']['tmp_name'][$i], $newfile);

}
}
}
print "<form method="post" enctype="multipart/form-data">";
for($i=0;$i<$ jumlahfile;$i++) {
print "<input type="file" name="by[]" size="30"><br>";
}
print "<input type="submit" name="action"
value="Upload">";
print "</form>";
?>

Kesimpulan.

Penjelasan ini merupakan penjelasan yang singkat dan tidak begitu memperhatikan dari aspek keamanan dan besarnya sebuah file atau properti lain dari file itu sendiri. Diharapkan dengan membaca artikel ini Anda dapat memodifikasinya kembali dan menambahkan berbagai macam fungsi sehingga dapat berguna bagi proyek web Anda. Saya sangat terbuka untuk berdiskusi mengenai PHP script.


artikel juga dapat di baca di :


http://id.php.net/manual/en/function.move-uploaded-file.php