亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHP實(shí)現(xiàn)文件上傳下載之上傳原理及實(shí)現(xiàn)

上傳原理

將客戶端文件上傳到服務(wù)器端,再將服務(wù)器端的文件(臨時(shí)文件)移動(dòng)到指定目錄即可。

通過(guò)學(xué)習(xí)文件上傳,你將透過(guò)使用的現(xiàn)象看到文件上傳的本質(zhì)!


上傳的實(shí)現(xiàn)

1.客戶端配置

選擇文件上傳頁(yè)面(表單頁(yè)面)

下面兩個(gè)缺一不可:

  • 發(fā)送方式為POST

  • 添加enctype="multipart/form-data"屬性

index.php代碼如下:

<!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">
請(qǐng)選擇您要上傳的文件:<br/>
<input type="file" name="myFile" /><br/>
<input type="submit" value="上傳"/>
</form>
</body>
</html>

注:關(guān)鍵就是form的屬性;另外就是input 中用到了type="file"這一點(diǎn)

2.上傳處理頁(yè)面

上傳程序處理流程圖如下:

文件上傳.png

upload.php代碼如下:

<?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'];
 
//將服務(wù)器上的臨時(shí)文件移動(dòng)到指定位置
//方法一move_upload_file($tmp_name,$destination)
//move_uploaded_file($tmp_name, "uploads/".$filename);//文件夾應(yīng)提前建立好,不然報(bào)錯(cuò)
//方法二copy($src,$des)
//以上兩個(gè)函數(shù)都是成功返回真,否則返回false
//copy($tmp_name, "copies/".$filename);
//注意,不能兩個(gè)方法都對(duì)臨時(shí)文件進(jìn)行操作,臨時(shí)文件似乎操作完就沒了,我們?cè)囋嚪催^(guò)來(lái)
copy($tmp_name, "copies/".$filename);
move_uploaded_file($tmp_name, "uploads/".$filename);
//能夠?qū)崿F(xiàn),說(shuō)明move那個(gè)函數(shù)基本上相當(dāng)于剪切;copy就是copy,臨時(shí)文件還在
 
//另外,錯(cuò)誤信息也是不一樣的,遇到錯(cuò)誤可以查看或者直接報(bào)告給用戶
if ($error===0) {
  echo "上傳成功!";
}else{
  switch ($error){
    case 1:
      echo "超過(guò)了上傳文件的最大值,請(qǐng)上傳2M以下文件";
      break;
    case 2:
      echo "上傳文件過(guò)多,請(qǐng)一次上傳20個(gè)及以下文件!";
      break;
    case 3:
      echo "文件并未完全上傳,請(qǐng)?jiān)俅螄L試!";
      break;
    case 4:
      echo "未選擇上傳文件!";
      break;
    case 5:
      echo "上傳文件為0";
      break;
  }
}

點(diǎn)擊上傳之后,出現(xiàn):

QQ截圖20161102150906.png

注:需要在upload.php的同級(jí)目錄里新建一個(gè)uploads文件夾用于存放上傳的圖片,不然會(huì)報(bào)錯(cuò)

其中$_FILES為文件上傳變量,將其打印出來(lái)

QQ截圖20161102150613.png

得到是一個(gè)二維數(shù)組,這個(gè)大家應(yīng)該都能看懂,關(guān)鍵有兩個(gè):tmp_name臨時(shí)文件名;error報(bào)錯(cuò)信息(代號(hào),后面可以利用);

upload.php后面的一部分,利用報(bào)錯(cuò)信息來(lái)反饋給用戶,下一節(jié),我們來(lái)了解報(bào)錯(cuò)的相關(guān)知識(shí)



Weiter lernen
||
<!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"> 請(qǐng)選擇您要上傳的文件:<br/> <input type="file" name="myFile" /><br/> <input type="submit" value="上傳"/> </form> </body> </html>
einreichenCode zurücksetzen