Masalah seputar upload file dengan php

upload file dengan phpMinat terhadap bahasan tentang upload file dengan php kayanya sangat tinggi, ini saya lihat dari banyaknya pengunjung yang datang ke situs saya ini mencari informasi tentang bagaimana membuat form upload, membuat upload ke database dll. Oleh karena itu saya akan berbagi informasi tentang masalah yang sering terjadi pada saat membuat fasilitas upload file dengan php, mudahan ini berguna buat teman-teman yang sedang mendalaminya.

Saya sebelumnya sudah membuat 2 artikel tentang upload yaitu :

Cara upload gambar dengan php dan menyimpan kedalam database mysql

Cara upload file dengan PHP Script

Pada dasarnya setiap proses upload dengan php akan membawa nilai kembalian yang dibawa melalui $_FILES["file"]["error"]. Nilai kembalian ini bisa kita evaluasi untuk memunculkan pesan kepada pengguna. Diantara hasil kembalian tersebut ada yang menyatakan upload berhasil, dan ada yang menyatakan upload gagal dilakukan. Semuanya termasuk masalah umum dalam upload akan saya jelaskan dalam point-poin berikut :

  1. Bagaimana membuat form upload?
    Contoh membuat form upload dapat dibaca pada artikel Cara upload file dengan PHP Script, saya sudah jelaskan perbaris kode dengan rinci.
  2. Bagaimana membuat kode upload dengan php?
    Kode php untuk upload dapat dibaca pada artikel Cara upload file dengan PHP Script, saya sudah jelaskan perbaris kode dengan rinci.
  3. Bagaimana membatasi jenis file yang diupload?
    Setiap file yang dikirim/upload membawa informasi jenis filenya dalam  $_FILES['nama_file']['type'], dengan ini kita bisa melakukan pengecekan sebelum disimpan dalam folder tujuan. Untuk melihat contoh kodenya silahkan baca artikel Cara upload gambar dengan php dan menyimpan kedalam database mysql
  4. Bagaimana membatasi besar file yang diupload?
    Untuk membatasi besar file kita bisa lakukan dengan 3 cara :
    Pertama mengatur besar file pada php.ini :
    tentukan : upload_max_filesize = 5M dan post_max_size = 5M
    Kedua mengatur besar file pada form dengan menambahkan elemen :
    <input type="hidden" name="MAX_FILE_SIZE" value="500" />
    nilai "value" dalam kilobyte
    Ketiga membatasi lewat kode program dengan menambahkan pengecekan :
    $HTTP_POST_FILES['ufile']['size']
  5. Proses upload berhasil tapi file tidak ada?
    Ada kemungkinan alamat folder ditentukan otomatis oleh php sehingga tempat upload berbeda dengan yang anda harapkan, atau anda lupa menambahkan kode untuk memindah/copy file dari temporary ke folder anda. Lihat kode berikut :
    copy($HTTP_POST_FILES['file']['tmp_name'], $path) //untuk copy kefolder
    
    move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile) //Untuk memindah
    Salah satu kode diatas harus anda tambahkan pada script upload. Contoh kodenya silahkan baca artikel Cara upload gambar dengan php dan menyimpan kedalam database mysql
  6. Dimana membuat folder upload?
    Folder tempat upload file bisa kita atur/definisikan melalui kode program
  7. Apakah file yang diupload ditempatkan pada folder berbeda dengan kode php?
    Ini bisa kita lakukan dengan mengarahkannya pada proses move atau copy
  8. Bagaimana mengganti nama file yang diupload?
    Bisa dengan menggunakan move_uploaded_file($_FILES['file']['tmp_name'], "namafolder/namafilebaru")
  9. Kenapa muncul pesan "The uploaded file exceeds the upload_max_filesize directive in php.ini"?
    Ini terjadi karena file yang diupload melebihi dari nilai yang sudah ditetapkan pada php ini (lihat point 4)
  10. Kenapa muncul pesan "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form"?
    Ini terjadi karena ukuran file yang diupload melebihi nilai yang sudah diatur melalui form
  11. Kenapa muncul pesan "No file was uploaded"?
    Ini terjadi karena salah mengambil nama elemen input sehingga file yang anda upload dianggap kosong
  12. Kenapa muncul pesan "Missing a temporary folder"?
    Ini terjadi karena sistem (php.ini) tidak mengatur alamat folder temporary untuk upload atau folder temporary tidak ada (jarang terjadi). Anda bisa buat folder temporary di root folder.
  13. Kenapa muncul pesan "Failed to write file to disk"?
    Ini terjadi karena gagal menyimpan. Ada kemungkinan folder tidak tersedia atau hak akses/permission folder tidak dalam mode write. 

Semoga bermanfaat, jika ada tambahan silahkan masukkan pada komentar. Silahkan bagikan keteman anda yang mungkin berminat mempelajari tentang upload dalam php.

Zainal Hakim

** Bebas disunting dengan menyebutkan sumber **

Artikel Lainnya

  • Membuat laporan detail bercabang dengan php
    Kali ini saya ingin bahas tentang bagaimana membuat laporan detail bercabang dengan php. Maksud bercabang disini adalah sebuah laporan memiliki sub detail, dan didalam sub masih ada lagi laporan lagi sesuai sub yang dipilih.
  • Membuat aplikasi data mahasiswa dengan PHP - Bagian 3
    Proses tahap awal dari membuat database, tabel, membuat formulir input data mahasiswa, proses simpan dan upload photo mahasiswa sudah dilakukan pada artikel Membuat aplikasi data mahasiswa dengan PHP - Bagian 1 dan Bagian 2, sekarang membuat laporan hasil input data mahasiswa. Laporan ini akan dibuat menghubungkan kebeberapa bagian yaitu pencarian data mahasiswa, delete/menghapus data mahasiswa dan mengupdate data mahasiswa. Silahkan menyimak tahapan lanjutan berikut ini.
  • Menyederhanakan operasi mysql dengan function dalam php
    Sering dalam sebuah aplikasi web khususnya php, kita melakukan operasi database mysql secara berulang. Misal melakukan pengecekan, perhitungan, perbandingan ataupun operasi-operasi umum lainya yang dilibatkan dalam sebuah proses besar. Hal ini sangat tidak efektif karena kita harus menyusunya berulang-ulang yang kadang berujung pada sulitnya melakukan pengembangan. Pada tulisan ini saya akan berbagi trik jitu agar masalah diatas bisa teratasi dengan mudah.
  • Membuat aplikasi data mahasiswa dengan PHP - Bagian 4
    Melanjutkan artikel saya tentang membuat aplikasi data mahasiswa yang sempat tertunda, sekarang saya lanjutkan membahas tentang bagaimana membuat form update data mahasiswa serta menyimpanya kembali kedalam tabel database mysql yang sudah saya buat.
  • Menghapus dengan checkbox dalam php
    Anda menemui masalah dalam menghapus banyak data secara bersamaan pada laporan yang dibuat dengan PHP? Mungkin jawabnya ya, karena dulu saya pernah mengalami hal ini. Cara sederhana mengahapus record atau data dalam laporan php adalah satu-persatu dengan membuat link pada tiap baris data yang ditampilkan. Hal ini akan sangat menyulitkan anda jika ada banyak data yang harus dihapus. Bayangkan jika ada 100 recor harus anda hapus, berarti 100 kali mengklik data yang akan dihapus. Saya akan berbagi bagaimana membuat laporan php dengan fasilitas checkbox data yang akan dihapus. Silahkan simak artikel berikut.

Kiriman terbaru