欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP文件上傳之多文件上傳的實(shí)現(xiàn)思路

 更新時(shí)間:2016年01月27日 14:12:13   投稿:mrr  
這篇文章主要介紹了PHP文件上傳之多文件上傳的實(shí)現(xiàn)思路的相關(guān)資料,需要的朋友可以參考下

多文件上傳的兩種情況

①使用多個(gè)name值

<input type="file" name="file1">
<input type="file" name="file2">
<input type="file" name="file3">
<input type="file" name="file4">

a.點(diǎn)擊提交之后接收到的數(shù)據(jù)格式

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

從這種格式可以看出來(lái),每一個(gè)文件對(duì)應(yīng)一個(gè)數(shù)組單元

所以使用foreach遍歷數(shù)組,并對(duì)每個(gè)數(shù)組單元進(jìn)行文件上傳函數(shù)調(diào)用

b.點(diǎn)擊提交后的操作

①接收上傳的文件信息

$file = $_FILES;

②引入上傳函數(shù)

include('./functions.php');

③設(shè)置文件保存路徑

$path = './uploads/'; // 此目錄需要手動(dòng)創(chuàng)建

④調(diào)用文件上傳函數(shù)

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

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

②使用單個(gè)name值

a.第一種寫(xiě)法

<input type='file' name="file[]">
<input type='file' name="file[]">
<input type='file' name="file[]">

b.第二種寫(xiě)法

<input type="file" name="file[]" multiple>

c.點(diǎn)擊提交之后,接收到的數(shù)據(jù)格式

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

從這種格式可以看出來(lái),是將上傳的文件信息分開(kāi)保存到每個(gè)下標(biāo)中。
所以要做的事情就是拼接出來(lái)一個(gè)完整的文件信息,一個(gè)一維數(shù)組

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

所以要進(jìn)行的操作,是遍歷$_FILES['file'] 然后從中取出每條上傳文件的信息

d.點(diǎn)擊提交后的操作

①接收上傳的文件信息

$file = $_FILES['file'];

②引入上傳函數(shù)

include('./functions.php');

③設(shè)置文件保存路徑

$path = './uploads/'; // 此目錄需要手動(dòng)創(chuàng)建

④調(diào)用文件上傳函數(shù)

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

⑤判斷上傳狀態(tài)

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

a.遍歷$file['name'] 只是為了獲取$key

b.每遍歷一次,取出相對(duì)應(yīng)下標(biāo)的文件信息,賦值給一個(gè)新數(shù)組中對(duì)應(yīng)的鍵

如第一次 $key = 0;

$data['name'] = $file['name'][0]; // 相當(dāng)于取出了第一個(gè)文件的名字
$data['type'] = $file['type'][0]; // 相當(dāng)于取出了第一個(gè)文件的類(lèi)型

...

第一次遍歷完成之后

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

這樣就取出了第一個(gè)文件的所有信息

然后調(diào)用上傳函數(shù),進(jìn)行文件上傳處理

第二次遍歷時(shí)$key=1,相當(dāng)于獲取第二個(gè)上傳文件的信息

相關(guān)文章

  • PHP運(yùn)用foreach神奇的轉(zhuǎn)換數(shù)組(實(shí)例講解)

    PHP運(yùn)用foreach神奇的轉(zhuǎn)換數(shù)組(實(shí)例講解)

    下面小編就為大家分享一篇PHP運(yùn)用foreach神奇的轉(zhuǎn)換數(shù)組(實(shí)例講解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • php讀取csv實(shí)現(xiàn)csv文件下載功能

    php讀取csv實(shí)現(xiàn)csv文件下載功能

    用PHP代碼下載CSV文件,可以是字符串,也可以是一個(gè)CSV文件,下面直接上代碼
    2013-12-12
  • php增刪改查示例自己寫(xiě)的demo

    php增刪改查示例自己寫(xiě)的demo

    增刪改查是對(duì)數(shù)據(jù)庫(kù)最基本的操作,下面詳細(xì)為大家介紹下如何連接數(shù)據(jù)庫(kù)以及增刪改查等等相關(guān)知識(shí),感興趣的朋友可以參考下
    2013-09-09
  • php初學(xué)者教程之圖片縮放和裁剪

    php初學(xué)者教程之圖片縮放和裁剪

    這篇文章主要給大家介紹了關(guān)于php圖片縮放和裁剪的相關(guān)資料,主要利用的是imagecopyresampled(),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Laravel 5.5中為響應(yīng)請(qǐng)求提供的可響應(yīng)接口詳解

    Laravel 5.5中為響應(yīng)請(qǐng)求提供的可響應(yīng)接口詳解

    這篇文章主要給大家介紹了關(guān)于Laravel 5.5中為響應(yīng)請(qǐng)求提供的可響應(yīng)接口的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • ThinkPHP3.1新特性之字段合法性檢測(cè)詳解

    ThinkPHP3.1新特性之字段合法性檢測(cè)詳解

    表單提交的字段合法性檢測(cè),可以更好的保護(hù)數(shù)據(jù)的安全性。這一特性是3.1安全特性中的一個(gè)重要部分。這篇文章主要介紹了ThinkPHP3.1的字段合法性檢測(cè),需要的朋友可以參考下
    2014-06-06
  • php使用curl和正則表達(dá)式抓取網(wǎng)頁(yè)數(shù)據(jù)示例

    php使用curl和正則表達(dá)式抓取網(wǎng)頁(yè)數(shù)據(jù)示例

    這篇文章主要介紹了php使用curl和正則表達(dá)式抓取網(wǎng)頁(yè)數(shù)據(jù)示例,這里是抓取某網(wǎng)站的小說(shuō),需要的朋友可以修改一下抓取其它數(shù)據(jù)
    2014-04-04
  • Yii框架操作cookie與session的方法實(shí)例詳解

    Yii框架操作cookie與session的方法實(shí)例詳解

    這篇文章主要介紹了Yii框架操作cookie與session的方法,結(jié)合實(shí)例形式詳細(xì)分析了Yii針對(duì)cookie與session操作的常用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • 最新評(píng)論