PHP实现多文件上传
生活随笔
收集整理的這篇文章主要介紹了
PHP实现多文件上传
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
PHP文件上傳流程
若超過,PHP處理程序將無法得到任何表單數據,此時不僅上傳文件失敗,而且表單控件中填寫的數據也會提交失敗,也就是說:PHP處理程序預定義變量$_GET、$_POST、$_FILES將為空數組。
若沒有超過,文件上傳進入第3步檢驗。
若超過,PHP預處理器返回狀態碼2,文件上傳失敗。
若沒有超過,文件上傳進入第4步檢驗。
(當有多個文件進行上傳時,某個文件上傳框導致的文件上傳失敗,不會影響其他文件上傳框的上傳結果)
若超過,PHP預處理器返回狀態碼1,文件上傳失敗。
若沒有超過,文件上傳進入第5步檢驗。
但是有時由于某些原因(如max_execution_time選項設置過小或者網速慢等原因),上傳部分文件后不再繼續上傳剩余文件,導致文件上傳失敗,此時PHP預處理器返回狀態碼3
若通過,文件上傳進入第6步檢驗。
多個文件上傳要注意的就是相同的name保存的文件內容是按照下面的形式放在數組中的。是五個數組,按照文件的五個參數分別存放的,并非三個數組。所以如果直接使用count($_FILES[’$myPicture’]),答案為5。
array (size=5)'name' => array (size=3)0 => string '1.txt' (length=5)1 => string '2.txt' (length=5)2 => string '3.txt' (length=5)'type' => array (size=3)0 => string 'text/plain' (length=10)1 => string 'text/plain' (length=10)2 => string 'text/plain' (length=10)'tmp_name' => array (size=3)0 => string 'D:\wamp64\tmp\phpC5E8.tmp' (length=25)1 => string 'D:\wamp64\tmp\phpC5E9.tmp' (length=25)2 => string 'D:\wamp64\tmp\phpC5EA.tmp' (length=25)'error' => array (size=3)0 => int 01 => int 02 => int 0'size' => array (size=3)0 => int 01 => int 02 => int 0index.php文件
<form action="fileSystem.php" method="post" enctype="multipart/form-data"><input type="hidden" name="MAX_FILE_SIZE" value="100000" /><input type="file" name="myPicture[]" size= "25" maxlength="100"><br><input type="file" name="myPicture[]" size= "25" maxlength="100"><br><input type="file" name="myPicture[]" size= "25" maxlength="100"><br><input type="submit" value="提交"> </form>fileSystem文件
<?phpif (empty($_POST)) {exit("提交的表單數據超過post_max_size的配置");}$arr = $_FILES['myPicture'];$file =array();for ($i=0; $i < count($arr['name']); $i++) { $file[$i]['name'] = $arr['name'][$i];$file[$i]['type'] = $arr['type'][$i];$file[$i]['tmp_name'] = $arr['tmp_name'][$i];$file[$i]['error'] = $arr['error'][$i];$file[$i]['size'] = $arr['size'][$i];}for ($i=0; $i < count($file); $i++) { switch ($file[$i]['error']) {case 0: $fileName = $file[$i]['name'];$fileTemp = $file[$i]['tmp_name'];$destination = "uploads/" . $file[$i]['name'];move_uploaded_file($fileTemp, $destination);echo "上傳成功";break;case 1:echo "上傳附件超過php.ini中的upload_max_filesize選項的限制";break;case 2:echo "上傳附件的大小超過了form表單MAX_FILE_SIZE選項指定的值";break;case 3:echo "附件只有部分被上傳";break;case 4:echo "沒有選擇上傳附件";break;} } ?>總結
以上是生活随笔為你收集整理的PHP实现多文件上传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯第八届省赛JAVA真题----9数
- 下一篇: [BTS]BizTalk2006 Sql