Untuk mengunggah file, kita perlu menggunakan type=file type dalam HTML dan atribut enctype-nya. Inilah yang harus kita manfaatkan. Tentu saja, kita harus menggunakan pustaka fungsi FILE, pustaka fungsi tipe string, pustaka fungsi direktori, dan $_FILES[] di antara pustaka fungsi PHP.
Mungkin setiap situs memiliki banyak batasan dalam mengunggah file. Pembatasan ini mungkin mencakup jenis file, ukuran file, ekstensi, dan keberadaan direktori unggahan, keberadaan file unggahan, kemampuan menulis direktori, dan Keterbacaan, penggantian nama file. file yang diunggah dan cara menyalin file dari cache ke direktori yang Anda perlukan.
Tentu saja, prapemrosesan kesalahan tidak dapat diabaikan! Jika kita membahasnya lebih lanjut, kita juga dapat mengaktifkan perekaman log peristiwa untuk operasi file.
Di bawah ini kami mengimplementasikan fungsi-fungsi ini melalui sebuah program:
Yang pertama adalah nilai variabel preset kami, yang mencakup ukuran file, jenis ekstensi file, jenis MIMI, dan apakah akan menghapus variabel switch
$MAX_SIZE = 2000000;
$FILE_MIMES = array('gambar/jpeg','gambar/jpg','gambar/gif'
,'image/png','application/msword');
$FILE_EXTS = array('.zip','.jpg','.png','.gif');
$DELETABLE = true
; atur variabel akses Browser dan variabel akses direktori:
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = http://.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF' ]);
$url_this = http://.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF' ];
$upload_dir = file/;
$upload_url = $url_dir./files/;
$message =;
Buat direktori unggah dan ubah izin sesuai:
if (!is_dir(files)) {
jika (!mkdir($upload_dir))
die (direktori upload_files tidak ada dan pembuatan gagal);
jika (!chmod($upload_dir,0755))
die (gagal mengubah izin ke 755.);
}
Penanganan permintaan pengguna:
if ($_REQUEST[del] && $DELETABLE) {
$sumber daya = fopen(log.txt,a);
fwrite($resource,date(Ymd h:i:s).DELETE - $_SERVER[REMOTE_ADDR].$_REQUEST[del]\n);
fclose($resource);
if (strpos($_REQUEST[del],/.)>0); //kemungkinan peretasan
else if (strpos($_REQUEST[del],files/) === false); //kemungkinan peretasan
else if (substr($_REQUEST[del],0,6)==files/) {
batalkan tautan($_REQUEST[del]);
print <script>window.location.href='$url_this?message=berhasil dihapus'</script>;
}
}
else if ($_FILES['file pengguna']) {
$sumber daya = fopen(log.txt,a);
fwrite($sumber daya,tanggal(Ymd h:i:s).UPLOAD - $_SERVER[REMOTE_ADDR]
.$_FILES['file pengguna']['nama'].
.$_FILES['file pengguna']['tipe'].\n);
fclose($sumber daya);
$file_type = $_FILES['file pengguna']['type'];
$nama_file = $_FILES['file pengguna']['nama'];
$file_ext = strtolower(substr($file_name,strrpos($file_name,.)));
//Pemeriksaan ukuran file:
if ( $_FILES['userfile']['size'] > $MAX_SIZE)
$message = Ukuran file lebih dari 2MB.;
//Jenis File/Pemeriksaan Ekstensi
lain jika (!in_array($file_type, $FILE_MIMES)
&& !in_array($file_ext, $FILE_EXTS) )
$message = Maaf, $file_name($file_type) tidak boleh diunggah.;
kalau tidak
$message = do_upload($upload_dir, $upload_url);
cetak <script>window.location.href='$url_this?message=$message'</script>;
}
else if (!$_FILES['file pengguna']);
kalau tidak
$message = File yang Ditentukan Tidak Valid.;
Cantumkan file yang kami unggah:
$handle=opendir($upload_dir);
$daftar file = ;
while ($file = readdir($handle)) {
if(!is_dir($file) && !is_link($file)) {
$filelist .= <a href='$upload_dir$file'>.$file.</a>;
jika ($DAPAT DIHAPUS)
$filelist .= <a href='?del=$upload_dir$file' title='hapus'>x</a>;
$filelist .= <sub><small><small><warna font=abu-abu> .date(dm H:i, filemtime($upload_dir.$file))
.</font></kecil></kecil></sub>;
$daftar file .=<br>;
}
}
fungsi do_upload($upload_dir, $upload_url) {
$temp_name = $_FILES['userfile']['tmp_name'];
$nama_file = $_FILES['file pengguna']['nama'];
$nama_file = str_replace( \\,,$nama_file );
$nama_file = str_replace(',,$nama_file);
$file_path = $upload_dir.$nama_file;
//Pemeriksaan Nama File
jika ( $nama_file ==) {
$message = Nama File yang Ditentukan Tidak Valid;
kembalikan $pesan;
}
$hasil = pindah_upload_file($nama_temp, $jalur_file);
jika (!chmod($file_path,0777))
$message = mengubah izin ke 777 gagal.;
kalau tidak
$message = ($result)?$file_name berhasil diunggah.
Ada yang salah dengan mengunggah file.;
kembalikan $pesan;
}
?>
<tengah>
<warna font=merah><?=$_REQUEST[pesan]?></font>
<br>
<nama formulir=upload id=upload ENCTYPE=multipart/form-data method=post>
Unggah File <tipe input=id file=nama file pengguna=file pengguna>
<tipe masukan=kirim nama=nilai unggah=Unggah>
</form>
<br><b>File Saya</b>
<lebar jam=70%>
<?=$daftar file?>
<lebar jam=70%>
<kecil><sup>Dikembangkan Oleh
<a style=text-decoration:none href=http://tech.citypost.ca>CityPost.ca</a>
</sup></kecil>
</tengah>