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:

文件上传.pngKod 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:

QQ截图20161102150906.pngNota: 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

untuk mendapatkan tatasusunan dua dimensi. Semua orang harus dapat memahami ini. Terdapat dua perkara utama: tmp_name nama fail sementara ; kepada pengguna. Dalam bahagian seterusnya, kita akan belajar tentang pelaporan ralat

QQ截图20161102150613.png

Meneruskan pembelajaran
||
<!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>
  • Cadangan kursus
  • Muat turun perisian kursus