Artikel PHP/MySQL
Upload file ke server dengan menggunakan PHP
Ditulis oleh Dhimas Ronggobramantyo
Kategori: PHP/MySQL
Dibaca 20697 kali
Kali ini saya akan membahas tentang upload file menggunakan PHP. Tentu menyenangkan jika pengguna website anda dapat melakukan upload gambar, dokumen atau video kedalam website anda. Artikel ini akan menerangkan cara mengupload file keserver anda dengan PHP.
PHP membuat semuanya menjadi lebih mudah dalam menangani upload file. Untuk membuat form upload pastikan kita menyertakan atribut enctype="multipart/form-data" dan pastikan methodnya adlaha post. Oke langsung saja kita lihat kode HTML berikut ini:
<form method="post" action="<?=$PHP_SELF?>" enctype="multipart/form-data">
<input type="file" name="myfile">
<input type="submit" name="Submit" value="Submit">
</form>
Seperti yang kita lihat, kita me,mberi nama pada field upload kita "myfile". Nama ini sangat penting, karena ketika file telah diupload maka file tersebut otomatis diberi nama yang unik dan disimpan di temporary direktori. Tentu saja url path ke filenya bisa diakses, karena otomatis akan muncul variabel global yang memiliki nama yang sama dengan field upload kita, dalam hal ini myfile. Akan ada 4 variabel baru yang semuanya diawali dengan myfile dan diikuti dengan garis bawah (underscore), yaitu:
- $myfile. Variabel ini berisi informasi lokasi file di server.
- $myfile_name. Nama file asli ketika masih dikomputer klien.
- $myfile_size. Ukuran dari file (dalam satuan bytes).
- $myfile_type. Tipe file.
Upload sederhana
Langsung saja kita coba contoh upload berikut ini, simpan dengan nama upload.php:
<html>
<head>
<title>Upload file</title>
</head>
<body>
<?
if ( isset( $upload ) ) {
echo "Lokasi File: $myfile<br>";
echo "Nama File: $myfile_name<br>";
echo "Ukuran: $myfile_size bytes<br>";
echo "Tipe File: $myfile_type<br>";
copy ( $myfile, "$myfile_name") or die ("Gagal mengupload");
}
?>
<form enctype="multipart/form-data" action="<?=$PHP_SELF?>" method="post">
<input type="file" name="myfile"><br>
<input type="submit" value="upload" name="upload">
</form>
</body>
</html>
Ketika tombol upload ditekan, maka url path file tersebut akan disimpan di variabel $myfile dan kita tampilkan dibrowser. Kita juga menampilkan nama file yang tersimpan pada variabel $myfile_name, ukuran file di variabel $myfile_size dan tipe file di variabel $myfile_type.
Kita menggunakan fungsi copy() untuk memindahkan file dari komputer kita direktori sementara di server kita. Fungsi copy() membutuhkan dua argumen yaitu lokasi awal file dan lokasi baru diserver. Jika kita ingin mengupload nya ke suatu folder diserver (katakanlah kita simpan difolder images) maka kita perlu mengubahnya menjadi: copy ( $myfile, "images/$myfile_name")
Upload yang lebih kompleks
Sekarang mari kita coba membuat fungsi upload yang jauh lebih rumit. Misalkan kita ingin membuat fungsi upload dimana file yang diupload harus file jpg, dan ukurannya tidak boleh lebih besar dari 100Kb serta panjang dan lebar gambar tidak boleh lebih dari 100 piksel. Kelihatannya rumit kan? Mari kita coba kode berikut dan simpan dengan nama upload2.php:
<html>
<head>
<title>Upload file</title>
</head>
<body>
<?
if ( isset( $upload ) ) {
echo "Lokasi File: $myfile<br>";
echo "Nama File: $myfile_name<br>";
echo "Ukuran: $myfile_size bytes<br>";
echo "Tipe File: $myfile_type<br>";
if ( $myfile_type == "image/pjpeg" ) {
if ($myfile_size <= 102400 ) {
list($width, $height) = @getimagesize("$myfile");
if ( $width <= 100 && $height <= 100 ) {
copy ( $myfile, "$myfile_name") or die ("Couldn't copy");
echo "File anda telah sukses diupload";
} else {
echo "Ukuran panjang dan lebar gambar terlalu besar";
}
} else {
echo "Ukuran file tidak boleh lebih dari 100Kb";
}
} else {
echo "File harus JPG!!";
}
}
?>
<form enctype="multipart/form-data" action="<?=$PHP_SELF?>" method="post">
<input type="file" name="myfile"><br>
<input type="submit" value="upload" name="upload">
</form>
</body>
</html>
Pertama-tama yang kita lakukan adalah mengecek apakah file kita jpg dengan cara mengecek $myfile_type. Jika hasil dari variabel $myfile_type adalah "image/pjpeg", maka bisa dipastikan bahwa file kita adalah jpg. Berikutnya kita melakukan pengecekan apakah ukuran filenya tidak lebih besar dari 100Kb dengan mengecek variabel $myfile_size. Ingat bahwa 100Kb = 102400Bytes(Rumusnya 1Kb=1024Bytes). Kemudian kita menggunakan fungsi getimagesize() untuk menemukan panjang dan lebar dari gambar yang kita simpan dengan array menggunakan fungsi list(). Kemudian kita cek panjang dan lebar dari gambar apakah tidak lebih dari 100 piksel. Jika semuanya terpenuhi maka filenya tinggal kita copy. Cukup mudah kan? gampang... anda pasti bisa.
Komentar [53]
Alangkah bagusnya jika variabel yang digunakan untuk Kode Program menggunakan variebl global ^___^
Yap, dalam contoh saya tidak menggunakan variabel global karena semuanya berada di satu file php. Tetapi jika kita menggunakan fungsi atau menginclude dari file php lain, maka wajib pake variable global
saya masih belum mengerti fungsi dari
enctype="multipart/form-data"
Bisa tolong dijelaskan?
bangus, makasih ya info nya....
http://yapensa.100webspace.net
saya sangat terbantu dengan info ini. terima kasih atas infonya
Ah kayaknya Biasa saja, mending cari di library php aja kayak kalau pake bahasa Basic carinya di MSDN, lebih cepat kalau mau cari suatu fungsi. Tapi yang buat template website ini saya kasih ++ sama dia, soalnya design nya bagus
wah untuk saya pemula, info program ini sangat manfaat sekali, saya mau tanya kalau dilokal (dg joomla) program uploadnya berfungsi dengan baik tapi setelah di hosting (dg joomla) programnya tidak berhasil, tidak ada error massege tidak ada dan filenya tidak ada difoldernya....mohon info lebih lanjutyah...txs (vera@indovic.com)
thanks ya, ditambah juga script untuk nama pengirim dan komentar.
Thanks atas infonya.
Saya punya masalah dengan memasukkan data >500M Apa bisa membantu saya? Karena saya beberapa x memasukan data besar smp dgn 1GB tidak bisa
saya mau tanya bagaimana sebuah php itu bisa di upload langsung di internet dan apakah perlu domain untuk bisa memliki web sendiri dari sebuah php..
tolong kasih tau caranya dari program sampai upload ke linknya............
thanq banget bos ... banyak banget manfaat yang bisa diambil dari web ini ... tutorialnya bagus2...
terus menulis dan bagikan ilmu anda ...
itung2 nabung buat akherat nanti ...
thanq banget sekali lagi
to Devi
Kalau filenya segede itu ya harus atur setting php.ini nya untuk naikin limit filenya. Kira2 yang perlu diatur upload_max_filesize, max_input_time, memory_limit, max_execution_time sama post_max_size
yapensa.com situs informasi kota depok hasil karya anak depok,,,,,,,,
jeli sekali anda meraih peluang PHP di Internet. Hal ini dapat membantu saya untuk mempermudah akses web saudara untuk berbagi ilmu. Thanks...ya . Web anda sangat bermanfaat. Semoga Anda mendapat pahala di kehidupan mendatang.
Maturnuwun, lama mutrmuter2 nyari fungsi php yang bisa ngambil ukuran image, eh ketemunya di sini!..
thx. Dhimas!
wah susah2 nyari source code upload file luar negri ternyata yg versi indo juga ada hehe. mau tny ya om, klo udah upload video tros mau di play di halaman web kita gmn caranya? tipe video apa aja yg bisa di play di halaman web tsb?
mohon petunjuk ya..
makasi mas,,ini berguna buat saya!!
thoriqgrady@yahoo.com
tak cba kok gak bsa ya ...
pa hrus nyeting di php.ini nya gak?
ada apa saja jenis file yang dpat di upload ? contoh : image/jpeg,bisa tau list file typenya ?
jadi seandainya kita hendak menentukan file type yang boleh diupload cuma,rar,jpeg,dan bmp saja.Thx
terima kasih atas artikel yang telah di muat dengan artikel ini saya menjadi gamblang tentang apa CSS itu,moga terus update terus
ehm...bisa liat sebentar seperti anda bisa bantu saya. yang masih katrok banget ma pemrograman pi kepingin bisa gimna ya?heheheh..q punya pertnyaan.. gmn caranya menghub. php dengan mysqlkal q pake wamp?
wah,,thanx atas artikelnya,,
sy pemula,,awalnya sy bingung untuk alamat $myfile,,sy br inget kalo alamat itu ada di server..jd y ga ada di klien,,tapi saya msh bngung gmana caranya agar klien dpt membuka file yang telah diupload ya??
tengkyu mas dimas...
ASSL!!!
waahhh!!! setelah saya cari2 di google akhirnya saya menemukan web yg tpat untuk memperdalam pengthuan saya mengenai pembuatan website. ehmmm... boleh ga saya minta artikel mengenai koneksi PHP ke database conth: mysql? o y saya pengen memperdalam keilmuan saya di bidang web programing langkah awal yang harus saya jalanin apa saja y?
tlng krim ke email saya
antmail.87@gmail.com
mengenai web ini oke bangetttt deh penilaian sy 2 jempol deh eh eh eh 4 jempollllll
salam kenal Anton S.
Wassll....
mz aq nyoba upload2 yg lbh kompleks knpa tdk bsa yaa, trs aq mncaoba memodifikasi tp tdk bsa
mohon pencerahannya
wah artikel lumayan juga. tp bagaimana kl kita mau mengupload ke file hosting yg membutuhkan kita utk login (kitaupload.com, indowebster, rapidshare.com, dll). tolong bari petunjuk ke sabitha.syifa@gmail.com
"Yap, dalam contoh saya tidak menggunakan variabel global karena semuanya berada di satu file php. Tetapi jika kita menggunakan fungsi atau menginclude dari file php lain, maka wajib pake variable global"
meskipun dalam satu file, kalo settingan register_globalnya di off tetep gak jalan, mas.. bukankah variabel global itu fungsinya untuk mengatur lalu lintas variable, mirip2 kayak lampu merah gitu... ;-)
salut.. bagus webnya...
http://blog.shofura.com
asli keren.terimakasih ANda telah membanTu kelancaran skripsi saya.
sebelumnya saya mohon maaf karena telah mengganggu kegiatan Anda.
Saya hanya inginmenanyakan, bagaimana cara kita membuat formulir yang bisa langsung dikirimkan ke email kita ?
seperti contoh yang aku buat di http://keunggulangypsum.webs.com.
Tapi isian formulir dari temen - temen gak ada yang masuk.
perlu diketahui...saya memasukan website menggunakan HTML.
terima kasih
Web Anda bagus banget mudah-mudah bisa lebih meningkatkan kreatifitasnya
baGUs kAnG......
bagaimana caranya mensetting login untuk dimasukkan ke dalam login
masssssssssssss kngennnnnnnnn neeeeeeeeeeee
entar lgi shutting kejar striping neeee
jangan lupa nonton sinetron allisha jngan lpa nonton ya.....!!!
duh cpek hbis shutting,kangen lagi ma marvel
trim atas penjelasannya,
kl yg diupload ke database file lain misal document (doc) terus kita ingin menampilkan file ISI tsb sehingga bisa kita baca dibrowser gimana bang?...soale yg sehing dicontohin file gambar trs.....
tx
mau tanya ne..,klo menampilkan lebih dari satu table mislakan diweb tu kan ad searchnya..itu kan menampilkan seluruh isi web,gamana caranya?thanks banget tutorialnya
bos, apa bisa scrip diatas buat upload video via form ke mysql?
aq coba gagal trus(bukan scrip di atas sih)
sudah pernah coba upload .CSV di firefox???
kalo boleh tanya kenapa saya gak bisa upload .csv???
errornya datatype not allowed padahal semua mime nya saya config semua untuk file .csv !!!
mass....sy br blajr php&mysql....trustrang sy sngat buta,tp saya sngat tertarik....apalagi stlah buka web ini sy jd smangat.........mkasih mass...
oya mas klw bisa,upload juga donk mass....."tentang bagusan mana prospek windows programer atau web programer di indo menurut mass"
page mas2 n mbak2....
boleh minta tolong,,, nie aq bikin fungsi upload,, n aq coba komputer lokal bisa,,
tapi setelah aq uploadkan ke website,,,, eh malah gagal waktu move upload file,,,
knp yaw??
makasiiii
Bagus Sekali.. artikelnya..
tapi alangkah baiknya jika diberi kelanjutan bagaimana menampilkan kembali gambar yang telah di upload
Maaf saya sudah mencobanya menggunakan free web hosting dengan cpane, namun file .jpg yang saya upload tidak masuk ke folder, mengapa ? Tolong kirim penjelasannya ke email saya ya, krenza@rocketmail.com . Terima Kasih
gimana kalo merubah nama file gambar yg di upload misalkan foto.jpg diganti dengan 101.jpg saat di upload.. tapi utk semua file yang berextensi yang berbeda-beda .... (jpg,bmp,gif,jpeg,dlll).
tolong kirim ke emailku ya... athrees@ymail.com
Gimana kalau servernya adalah linux dengan client windows ?, disini saya pake Redhat AS 4, udah coba script diatas tapi tidak berhasil...... Mohon bantuannya.
Atau Email ke pirmandwiana@ymail.com.
Terimakasih sebelumnya.
Buat Guest Book pake Web Page Maker http://www.indowebster.com/wpm.html
koq gak bisa yaaa.. error...
apa karna sintax PHPnya kurang??
Thanks infonya.
tapi ada satu masalah nich. permasalahan seperti ini:
Bagaimana caranya supaya user dapat menentukan tempat penyimpanan sesuai dengan keinginannya.
jadi, selain user pilih file yang akan di_upload, user juga bisa pilih tempat penyimpanannya.
Terima kasih.
Tapi sayang hanya buat JPEG yah
bingung, koq di browserku gk tampil apa2 ya?
Komputer aj? pikirin memek donk....cewk" disinikan cantik
Thank's Bro
hmm,,,ty atas tutornya