Troubleshooting upload dengan skrip

Umum

Ukuran file hasil upload selalu 0 byte

Pastikan account hosting Anda masih memiliki ruang disk di bawah quota.

Atau mungkin juga ruang disk di server hosting habis. Untuk masalah yang ini, harap laporkan ke bagian technical support. Terima kasih.

PHP

Gagal saat move_uploaded_file()

Jika skrip Anda berjalan sebagai user CGI, maka file yang terupload ke temporary directory pertama akan menjadi milik (cgi-USER, USER, 600). Lalu jika Anda ingin memindahkan ke tujuan akhir, yaitu umumnya di bawah document root, maka direktori document root Anda perlu di-chmod menjadi 775, agar user cgi-USER dapat memindahkan file tersebut ke direktori tujuan akhir. Setelah itu chmod-lah file-nya menjadi 644 atau 664.

Jika skrip Anda berjalan sebagai USER, seharusnya tidak ada masalah saat move_uploaded_file(). Direktori tujuan akhir cukup 755 seperti biasa (750 atau 700 tidak bisa, karena nanti tidak akan bisa dilihat oleh user webserver). Jangan lupa setelah dipindahkan, chmod-lah file-nya menjadi 644 agar dapat dilihat oleh user webserver.

Gagal upload program biner

PHP di server hosting secara default mengaktifkan extension Suhosin. Extension ini melakukan beberapa pengecekan dan proteksi, di antaranya melarang upload ELF binary. Untuk menonaktifkan proteksi ini agar Anda dapat mengupload biner, set suhosin.upload.disallow_elf = 0 dari php.ini per-subdomain Anda.

Contoh skrip Upload PHP

Berikut contoh skrip upload PHP dengan Prefs PHP sebagai user CGI. Langkah pertama buat halaman form (beri nama file uploadform.php) yang isinya sebagai berikut:

Contoh Form Upload dengan PHP

Langkah kedua buat file pemroses form tadi (beri nama file p_upload.php) yang isinya:

<?php
$uploaddir = 'images/';
$uploadfile = $uploaddir . $_FILES['userfile']['name'];
chmod("$userfile", 0644);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
 echo "File sudah sukses diupload ke server pada folder dan nama file $uploadfile";
} else {
 echo "Proses upload gagal, kode error = " . $_FILES['userfile']['error'];
}
?>

Agar direktori images/ ini bisa sukses ditulis oleh skrip php, maka perlu di ubah permissionnya ke 775.

Resita has written 702 articles