Saya tidak terlalu memperhatikan pengunggahan file sebelumnya. Kemarin saya melakukan yang sederhana tetapi menemukan banyak masalah.
Kode program di awal adalah sebagai berikut:
unggahimg.php
<?php
//Tentukan apakah itu antarmuka unggahan atau antarmuka implementasi. Jika itu adalah antarmuka unggahan, tampilkan halaman HTML berikut
if(!$_POST['UploadAction']):
?>
<html>
<kepala>
<judul></judul>
</kepala>
<body><tabel><pusat>
<form enctype="multipart/form-data" name="SubmitForm" action="" metode="post">
<input type="tersembunyi" nama="UploadAction" value="1">
<tr><td><input name="UploadFile" type="file" size="30"></td></tr>
<tr><td><input type="kirim" name="kirim" value="Unggah"></td>
<td><input type="reset" name="reset" value="Reset"></td></tr>
</bentuk>
</center></table></body>
</html>
<?php
//Jika merupakan halaman implementasi, tampilkan halaman HTML berikut dan aktifkan skrip PHP
lain:
?>
<html>
<kepala>
<judul></judul>
</kepala>
<tubuh>
<?php
//www.knowsky.com menginisialisasi status UploadAction
$UploadAction=0;
$UploadFile=$_POST['UploadFile'];
jika(($UploadFile!="tidak ada") && ($UploadFile!=""))
{
$UploadPath=$_SERVER['DOCUMENT_ROOT']."\"
;
{
echo "Direktori $UploadPath tidak dapat ditulisi!"; keluar;
}
kalau tidak
{
echo "Direktori $UploadPath dapat ditulisi!";
}
$NamaFile=$UnggahFile_nama;
jika($UnggahFile_ukuran<1024)
{
$UkuranFile=(string)$UnggahFile_ukuran."byte";
}
elseif($UnggahFile_ukuran<(1024*1024))
{
$FileSize=number_format((double)($UploadFile_size/1024),1).."KB";
}
kalau tidak
{
$UkuranFile=angka_format((ganda)($UnggahFile_ukuran/(1024*1024)),1).."KB";
}
if(!file_exists($UploadPath.$NamaFile))
{
if(move_uploaded_file($UploadFile,$UploadPath.$NamaFile))
{
echo "File $UploadFile_name ($FileSize) berhasil diupload!";
}
kalau tidak
{
echo "Pengunggahan file $UploadFile_name ($FileSize) gagal!";
}
batalkan tautan($UploadPath.$NamaFile);
}
kalau tidak
{
echo "File $UploadFile_name sudah ada!";
}
}
kalau tidak
{
echo "Anda tidak memilih file apa pun untuk diunggah, atau file yang diunggah melebihi $MAX_FILE_SIZE!";
}
?>
<br><a href="uploadimg.php">Kembali</a>
</tubuh>
</html>
<?php
endif
?>
Setelah menjalankannya, saya menemukan bahwa unggahan tidak berpengaruh sama sekali, dan saya bahkan tidak bisa masuk ke halaman implementasi. Setelah mencari dan bertanya, saya mengetahui bahwa $_FILES diperlukan untuk mendapatkan file yang diunggah,
jadi saya membuat beberapa perubahan:
$UploadFile=$_FILES['UploadFile']['tmp_name'];
$UploadFile_size=$_FILES['UploadFile']['ukuran'];
$UploadFile_name=$_FILES['UploadFile']['nama'];
$FileName=strtolower($UploadFile_name);
Saya pikir itu akan selesai sekarang, tetapi pesan kesalahan muncul:
Peringatan: move_uploaded_file(F:Serverwww): gagal membuka streaming: Izin ditolak di F:Serverwwweooolfinishuploadimg.php on line 76
Peringatan: move_uploaded_file(): Tidak dapat memindahkan 'E:WINDOWSTEMPphp34.tmp' ke 'F:\Server\www' di F:Serverwwweooolfinishuploadimg.php on line 76
Pengunggahan file *****(****bytes) gagal!
Dan saya sedang melakukan debug pada sistem WIN, jadi seharusnya tidak ada masalah izin file. Saya melihat dan melihat dan memikirkannya, tetapi saya masih tidak dapat menemukannya. Saya memposting pesan di Lao Lao dan Joy untuk meminta bantuan. tetapi saya tidak mendapatkan jawaban yang benar. Pengunggahan file sederhana membutuhkan waktu lebih dari satu hari dan saya masih belum dapat menyelesaikannya, yang membuat saya sangat frustrasi. Saya tidak dapat menemukan kesalahan yang serupa dengan kesalahan saya di Internet.
Pada akhirnya, saya tidak punya pilihan selain memikirkan mengapa saya bisa berhasil mengunggah lampiran saat melakukan debug dengan sablog? Jadi saya hati-hati melihat kode asli untuk mengunggah lampiran ke sablog, dan melakukan perubahan berikut berdasarkan kode tersebut:
fungsi getextension($namafile) {
return substr(strrchr($namafile, "."), 1);
}
$extension=getextension($FileName);
if(move_uploaded_file($UploadFile,$UploadPath."temp.".$extension))
//batalkan tautan($UploadFile);
batalkan tautan($UploadPath."temp.".$extension);
Hasilnya langsung diterima dan upload berhasil!
Saya menggunakan unlink($UploadPath."temp.".$extension); di sini untuk segera menghapus file yang diunggah ke ruang dan menghemat ruang.