PHP menyedari prinsip muat naik dan pelaksanaan muat naik dan muat turun fail
Prinsip memuat naik
Muat naik fail klien ke pelayan, dan kemudian alihkan fail sebelah pelayan (fail sementara) ke direktori yang ditentukan.
Dengan mempelajari muat naik fail, anda akan melihat intipati muat naik fail melalui fenomena penggunaan!
Pelaksanaan muat naik
1. Konfigurasi pelanggan
Pilih halaman muat naik fail (halaman borang)
Dua yang berikut amat diperlukan:
Kaedah penghantaran ialah POST
Tambah atribut enctype="multipart/form-data"
Kod index.php ialah seperti berikut:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="format-detection" content="telephone=no" /> <title>文件上传</title> <meta charset="utf-8" /> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> 请选择您要上传的文件:<br/> <input type="file" name="myFile" /><br/> <input type="submit" value="上传"/> </form> </body> </html>
Nota: Kuncinya ialah atribut borang; >2. Halaman pemprosesan muat naik
Carta alir proses muat naik adalah seperti berikut:
Kod upload.php adalah seperti berikut:
<?php header("Content-type:text/html;charset=utf-8"); //文件上传处理程序 //$_FILES:文件上传变量 /*echo "<pre>"; var_dump($_FILES); exit; echo "</pre>";*/ $filename=$_FILES['myFile']['name']; $type=$_FILES['myFile']['type']; $tmp_name=$_FILES['myFile']['tmp_name']; $size=$_FILES['myFile']['size']; $error=$_FILES['myFile']['error']; //将服务器上的临时文件移动到指定位置 //方法一move_upload_file($tmp_name,$destination) //move_uploaded_file($tmp_name, "uploads/".$filename);//文件夹应提前建立好,不然报错 //方法二copy($src,$des) //以上两个函数都是成功返回真,否则返回false //copy($tmp_name, "copies/".$filename); //注意,不能两个方法都对临时文件进行操作,临时文件似乎操作完就没了,我们试试反过来 copy($tmp_name, "copies/".$filename); move_uploaded_file($tmp_name, "uploads/".$filename); //能够实现,说明move那个函数基本上相当于剪切;copy就是copy,临时文件还在 //另外,错误信息也是不一样的,遇到错误可以查看或者直接报告给用户 if ($error===0) { echo "上传成功!"; }else{ switch ($error){ case 1: echo "超过了上传文件的最大值,请上传2M以下文件"; break; case 2: echo "上传文件过多,请一次上传20个及以下文件!"; break; case 3: echo "文件并未完全上传,请再次尝试!"; break; case 4: echo "未选择上传文件!"; break; case 5: echo "上传文件为0"; break; } }
Selepas mengklik muat naik, perkara berikut muncul:
Nota: Anda perlu mencipta folder muat naik baharu dalam direktori yang sama seperti upload.php untuk menyimpan imej yang dimuat naik, jika tidak, ralat akan dilaporkan
antaranya $_FILES ialah pembolehubah muat naik fail