《PHP實例:PHP文件上傳之多文件上傳的實現思路》要點:
本文介紹了PHP實例:PHP文件上傳之多文件上傳的實現思路,希望對您有用。如果有疑問,可以聯系我們。
多文件上傳的兩種環境PHP編程
①使用多個name值
PHP編程
<input type="file" name="file1"> <input type="file" name="file2"> <input type="file" name="file3"> <input type="file" name="file4">
a.點擊提交之后接收到的數據格局PHP編程
Array ( [file1] => Array ( [name] => 8.png [type] => image/png [tmp_name] => G:\wamp\tmp\php737.tmp [error] => 0 [size] => 200 ) [file2] => Array ( [name] => 28.png [type] => image/png [tmp_name] => G:\wamp\tmp\php738.tmp [error] => 0 [size] => 6244 ) [file3] => Array ( [name] => 54a296f8n6787b34c.png [type] => image/png [tmp_name] => G:\wamp\tmp\php739.tmp [error] => 0 [size] => 3143 ) [file4] => Array ( [name] => 54c0573dncb4db6f7.jpg [type] => image/jpeg [tmp_name] => G:\wamp\tmp\php788.tmp [error] => 0 [size] => 5404 ) )
從這種格式可以看出來,每一個文件對應一個數組單位PHP編程
所以使用foreach遍歷數組,并對每個數組單位進行文件上傳函數調用PHP編程
b.點擊提交后的操作PHP編程
①接管上傳的文件信息PHP編程
$file = $_FILES;PHP編程
②引入上傳函數PHP編程
include('./functions.php');
③設置文件保留路徑PHP編程
$path = './uploads/'; // 此目錄必要手動創建
④調用文件上傳函數PHP編程
foreach($file as $v){ $info = uploadFile($v,$path); ⑤判斷上傳狀態 if($info['isok']){ echo '上傳勝利'.$info['message']; } else { echo '上傳失敗'.$info['message']; } }
---------------------------------------------------------------PHP編程
②使用單個name值PHP編程
a.第一種寫法PHP編程
<input type='file' name="file[]"> <input type='file' name="file[]"> <input type='file' name="file[]">
b.第二種寫法PHP編程
<input type="file" name="file[]" multiple>
c.點擊提交之后,接收到的數據格局PHP編程
Array ( [userpic] => Array ( [name] => Array ( [0] => 8.png [1] => 9b2d7581fba543ec9bcf95e91018915a.gif [2] => 12.jpg ) [type] => Array ( [0] => image/png [1] => image/gif [2] => image/jpeg ) [tmp_name] => Array ( [0] => G:\wamp\tmp\php85E5.tmp [1] => G:\wamp\tmp\php85E6.tmp [2] => G:\wamp\tmp\php8635.tmp ) [error] => Array ( [0] => 0 [1] => 0 [2] => 0 ) [size] => Array ( [0] => 200 [1] => 16503 [2] => 19443 ) ) )
從這種格式可以看出來,是將上傳的文件信息分開保留到每個下標中.
所以要做的事情就是拼接出來一個完整的文件信息,一個一維數組PHP編程
Array( [name] => 54c0573dncb4db6f7.jpg [type] => image/jpeg [tmp_name] => G:\wamp\tmp\php788.tmp [error] => 0 [size] => 5404 )
所以要進行的操作,是遍歷$_FILES['file'] 然后從中掏出每條上傳文件的信息PHP編程
d.點擊提交后的操作PHP編程
①接管上傳的文件信息PHP編程
$file = $_FILES['file'];PHP編程
②引入上傳函數PHP編程
include('./functions.php');PHP編程
③設置文件保留路徑PHP編程
$path = './uploads/'; // 此目錄必要手動創建PHP編程
④挪用文件上傳函數PHP編程
foreach($file['name'] as $key=>$value){ $data['name'] = $file['name'][$key]; $data['type'] = $file['type'][$key]; $data['tmp_name'] = $file['tmp_name'][$key]; $data['error'] = $file['error'][$key]; $data['size'] = $file['size'][$key]; $info = uploadFile($data,$path);
⑤斷定上傳狀態PHP編程
if($info['isok']){ echo '上傳勝利'.$info['message']; } else { echo '上傳失敗'.$info['message']; } }
a.遍歷$file['name'] 只是為了獲取$keyPHP編程
b.每遍歷一次,掏出相對應下標的文件信息,賦值給一個新數組中對應的鍵PHP編程
如第一次 $key = 0;PHP編程
$data['name'] = $file['name'][0]; // 相當于掏出了第一個文件的名字 $data['type'] = $file['type'][0]; // 相當于掏出了第一個文件的類型
...
PHP編程
第一次遍歷完成之后PHP編程
$data = array( [name] => 54c0573dncb4db6f7.jpg [type] => image/jpeg [tmp_name] => G:\wamp\tmp\php788.tmp [error] => 0 [size] => 5404 );
這樣就掏出了第一個文件的所有信息
PHP編程
然后調用上傳函數,進行文件上傳處置
PHP編程
第二次遍歷時$key=1,相稱于獲取第二個上傳文件的信息PHP編程
歡迎參與《PHP實例:PHP文件上傳之多文件上傳的實現思路》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/7615.html