開發中需要上傳圖片、音樂、視頻等等,這種上傳傳遞是二進制數據。
1.1客戶端上傳文件
文件域:
<input type="file" name="image">
表單的enctype屬性:
默認情況下,表單傳遞是字符流,不能傳遞二進制流,通過設置表單的enctype屬性傳遞復合數據。
-
application/x-www-form-urlencoded:【默認】,表示傳遞的是帶格式的文本數據。
-
multipart/form-data:復合的表單數據(字符串,文件),文件上傳必須設置此值
- text/plain:用於向服務器傳遞無格式的文本數據,主要用戶電子郵件
1.2服務器接收文件
move_uploaded_file(臨時地址,目標地址)
代碼:
<body> <?php if(!empty($_POST)) { if($_FILES['face']['error']==0){ //上傳正確 //文件上傳 move_uploaded_file($_FILES['face']['tmp_name'],'./'.$_FILES['face']['name']); }else{ echo '上傳有誤'; echo '錯誤碼:'.$_FILES['face']['error']; } } ?> <form method="post" action="" enctype='multipart/form-data'> <input type="file" name="face"> <input type="submit" name="button" value="上傳"> </form> </body>
1.4與文件上傳有關的配置
upload_max_filesize = 2M:允許上傳的文件大小
upload_tmp_dir =F:\wamp\tmp:指定臨時文件地址,如果不知道操作系統指定
file_uploads = On:是否允許文件上傳
max_file_uploads = 20:允許同時上傳20個文件