在經過form表單進行文件上傳的,PHP須要用到預約義變量$_FILESphp
$_FILES['userfile']['name'] 客戶端機器文件的原名稱。html
$_FILES['userfile']['type'] 文件的 MIME 類型,若是瀏覽器提供此信息的話。一個例子是「image/gif」。不過此 MIME 類型在 PHP 端並不檢查,所以不要想固然認爲有這個值。瀏覽器
$_FILES['userfile']['size'] 已上傳文件的大小,單位爲字節。函數
$_FILES['userfile']['tmp_name'] 文件被上傳後在服務端儲存的臨時文件名。post
$_FILES['userfile']['error'] 和該文件上傳相關的錯誤代碼spa
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文件上傳</title> </head> <body> <form action="upload1.php" method="post" enctype="multipart/form-data"> <div> <input type="file" name="textfile"><p> <input type="submit" value="上傳文件"> </div> </form> </body> </html>
對應處理的PHP代碼.net
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/4/2
* Time: 23:55
*/
header('content-type:text/html;charset=utf-8');
print_r($_FILES);
//1.經過$_FILES文件上傳變量接收上傳文件信息
$fileInfo=$_FILES['textfile'];
$filename=$fileInfo['name'];
$type=$fileInfo['type'];
$tmp_name=$fileInfo['tmp_name'];
$size=$fileInfo['size'];
$error=$fileInfo['error'];
if($error==UPLOAD_ERR_OK){
if(move_uploaded_file($tmp_name, "upload/".$filename)){
echo '文件'.$filename.'上傳成功';
}else{
echo '文件'.$filename.'上傳失敗';
}
}else{
//匹配錯誤信息
switch($error){
case 1:
echo '上傳文件超過了PHP配置文件中upload_max_filesize選項的值';
break;
case 2:
echo '超過了表單MAX_FILE_SIZE限制的大小';
break;
case 3:
echo '文件部分被上傳';
break;
case 4:
echo '沒有選擇上傳文件';
break;
case 6:
echo '沒有找到臨時目錄';
break;
case 7:
case 8:
echo '系統錯誤';
break;
}
}
上面的代碼只能說我把客戶端過來的文件,放在了PHP文件對應的文件夾下面,主要用的的函數就是move_uploaded_file (將上傳的文件移動到新位置)code
另外傳輸文件必需要用post方法進行提交,能夠用is_uploaded_file ($_FILES['userfile']['tmp_name'] )進行檢測。orm
這些也只是簡單的完成文件上傳,通常在實際項目中還要針對不一樣的文件類型,文件大小進行判斷。htm
對於文件的下載第一種方式就是經過a標籤來完成,直接用href填寫對應的鏈接地址
<a href="1.jpg">下載1.jpg</a>
第二種方式:
經過程序來完成:
php獲得文件的信息來進行下載處理:
<?php $filename=$_GET['filename']; header('content-disposition:attachment;filename='.basename($filename)); header('content-length:'.filesize($filename)); readfile($filename);
對於head函數:
Content-Disposition爲屬性名 attachment爲以附件方式下載
Content-Length首部告訴瀏覽器報文中實體主體的大小
readfile函數輸出一個文件來實現下載的功能