文件上傳分為兩個步驟
1,客戶端用戶上傳;
a)需要一個表單域,用來注入要上傳的文件,
<input type="file" name="file" />
b)用戶選擇所需要上傳的文件
c)用戶點擊,將文件發送給服務器
2,服務器接收
form表單使用POST提交方式。
*注意:GET,POST不能提交二進制文件,但是POST提交增加一個屬性便可以完成。
<form action="file.php" method="POST" enctype="multipart/form-data">
html部分:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上傳</title>
</head>
<body>
<form action="file.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="提交"/>
</form>
</body>
var_dump($_FILES) 時發現得到的是一個數組
array
'file' =>
array
'name' => string '4.jpg' (length=5)
'type' => string 'image/jpeg' (length=10)
'tmp_name' => string 'F:\wamp\tmp\php904D.tmp' (length=23)
'error' => int 0
'size' => int 273665
a)根據二維數組找到error點;
switch($_FILES['file']['error']){
case '0':
echo "上傳成功";
break;
case '1':
case '2':
header('Refresh:3;url=file.html');
echo "文件大小超過服務器限制";
break;
case '3':
header('Refresh:3;url=file.html');
echo "文件只有部分上傳成功";
break;
case '4':
header('Refresh:3;url=file.html');
echo "未選中文件,請重新選擇文件並提交";
break;
default:
echo "文件上傳失敗";
}
b)文件上傳成功後,放到了指定的臨時目錄中,此時需要更改到期待的文件中,
php有一個函數可以完成,move_uploaded_file()
eg:
move_uploaded_file($_FILES['file']['tmp_name'], './cy1/' . $_FILES['file']['name']);
注:tmp_name,文件上傳到服務器的臨時目錄,
'name',文件在客戶端本地的文件名字。