PHP檔案上傳之多檔案上傳的實現思路,_PHP教程

來源:互聯網
上載者:User

PHP檔案上傳之多檔案上傳的實現思路,


多檔案上傳的兩種情況

①使用多個name值


a.點擊提交之後接收到的資料格式

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))

從這種格式可以看出來,每一個檔案對應一個數組單元

所以使用foreach遍曆數組,並對每個數組單元進行檔案上傳函數調用

b.點擊提交後的操作

①接收上傳的檔案資訊

$file = $_FILES;

②引入上傳函數

include('./functions.php');

③設定檔案儲存路徑

$path = './uploads/'; // 此目錄需要手動建立

④調用檔案上傳函數

foreach($file as $v){$info = uploadFile($v,$path);⑤判斷上傳狀態if($info['isok']){echo '上傳成功'.$info['message'];} else {echo '上傳失敗'.$info['message'];}}

---------------------------------------------------------------

②使用單個name值

a.第一種寫法


b.第二種寫法


c.點擊提交之後,接收到的資料格式

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)))

從這種格式可以看出來,是將上傳的檔案資訊分開儲存到每個下標中。
所以要做的事情就是拼接出來一個完整的檔案資訊,一個一維數組

Array([name] => 54c0573dncb4db6f7.jpg[type] => image/jpeg[tmp_name] => G:\wamp\tmp\php788.tmp[error] => 0[size] => 5404)

所以要進行的操作,是遍曆$_FILES['file'] 然後從中取出每條上傳檔案的資訊

d.點擊提交後的操作

①接收上傳的檔案資訊

$file = $_FILES['file'];

②引入上傳函數

include('./functions.php');

③設定檔案儲存路徑

$path = './uploads/'; // 此目錄需要手動建立

④調用檔案上傳函數

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);

⑤判斷上傳狀態

if($info['isok']){echo '上傳成功'.$info['message'];} else {echo '上傳失敗'.$info['message'];}}

a.遍曆$file['name'] 只是為了擷取$key

b.每遍曆一次,取出相對應下標的檔案資訊,賦值給一個新數組中對應的鍵

如第一次 $key = 0;

$data['name'] = $file['name'][0]; // 相當於取出了第一個檔案的名字$data['type'] = $file['type'][0]; // 相當於取出了第一個檔案的類型

...

第一次遍曆完成之後

$data = array([name] => 54c0573dncb4db6f7.jpg[type] => image/jpeg[tmp_name] => G:\wamp\tmp\php788.tmp[error] => 0[size] => 5404);

這樣就取出了第一個檔案的所有資訊

然後調用上傳函數,進行檔案上傳處理

第二次遍曆時$key=1,相當於擷取第二個上傳檔案的資訊

您可能感興趣的文章:

  • PHP5+UTF8多檔案上傳類
  • php 動態多檔案上傳
  • 最新的php 檔案上傳模型,支援多檔案上傳
  • php中關於普通表單多檔案上傳的處理方法
  • php多檔案上傳功能實現原理及代碼
  • php jquery 多檔案上傳簡單一實例
  • php多檔案上傳實現代碼
  • php多檔案上傳下載樣本分享
  • Thinkphp多檔案上傳實現方法
  • PHP多檔案上傳類執行個體
  • PHP多檔案上傳執行個體
  • PHP實現檔案上傳和多檔案上傳

http://www.bkjia.com/PHPjc/1096142.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1096142.htmlTechArticlePHP檔案上傳之多檔案上傳的實現思路, 多檔案上傳的兩種情況 ①使用多個name值 input type="file" name="file1"input type="file" name="file2"input type="fi...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.