台灣最大程式設計社群網站
線上人數
1145
 
會員總數:245214
討論主題:189087
歡迎您免費加入會員
討論區列表 >> PHP >> 請教多個檔案上傳
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請教多個檔案上傳
價值 : 500 QP  點閱數:996 回應數:6

樓主

大家加油
初學者
799 904
8017 563
發送站內信

我依據以下的網頁設計多個檔案上傳的表單與接收端網頁:
http://www.codexworld.com/add-remove-input-fields-dynamically-using-jquery/
表單內容如下:

<form id="form2" enctype="multipart/form-data" method="post" action="insert2.php">
<div class="field_wrapper">
<div><input type="text" name="show[]" value=""/><input type="file" name="upload1[]" value=""/><a href="javascript:void(0);" class="add_button" title="Add field"><img src="add-icon.png"/></a></div>
</div>
<input type="submit" value="送出資料">
&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" value="清空表單">
</form>

這一頁的script語法如下,其實跟參考網頁差不多:
<script type="text/javascript">
$(document).ready(function(){
var maxField = 10; //Input fields increment limitation
var addButton = $('.add_button'); //Add button selector
var wrapper = $('.field_wrapper'); //Input field wrapper
var fieldHTML = '<div><input type="text" name="show[]" value=""/><input type="file" name="upload1[]" value=""/><a href="javascript:void(0);" class="remove_button" title="Remove field"><img src="remove-icon.png"/></a></div>'; //New input field html
var x = 1; //Initial field counter is 1
$(addButton).click(function(){ //Once add button is clicked
if(x < maxField){ //Check maximum number of input fields
x++; //Increment field counter
$(wrapper).append(fieldHTML); // Add field html
}
});
$(wrapper).on('click', '.remove_button', function(e){ //Once remove button is clicked
e.preventDefault();
$(this).parent('div').remove(); //Remove field html
x--; //Decrement field counter
});
});
</script>

接收端語法如下:

$show_array = $_REQUEST['show'];
$upload1_array = $_FILES['upload1'];
$a=0;
foreach($show_array as $value){
echo $a."<br>";
echo $value."<br>";
$a++;
//一筆一筆加入,可是變數a每一次跑都是由0開始,作為判斷恐有失真
}
$a=0;
print '
';
	print_r($upload1_array);
	print '';		
foreach($upload1_array as $value2){
echo $value2[]."<br>";
echo $a."<br>";
$a++;
//圖檔更名後上傳
//採用更新方式
}

現在的問題是FILE這部分,我上傳兩張圖片,print_r($upload1_array)後內容如下:


Array
(
[name] => Array
(
[0] => Noname.jpg
[1] => IMG_3538.PNG
)

[type] => Array
(
[0] => image/jpeg
[1] => image/png
)

[tmp_name] => Array
(
[0] => /tmp/phprKJCzu
[1] => /tmp/phpZi4C0e
)

[error] => Array
(
[0] => 0
[1] => 0
)

[size] => Array
(
[0] => 112888
[1] => 404357
)

)

請問我要如何使用foreach方式讀取出每一張圖片的檔案名稱?謝謝!
搜尋相關Tags的文章: [ 多個檔案上傳 ] ,
本篇文章發表於2016-02-04 17:48
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
請先用程式標簽排好。

恕不回應你的問題。
直到你肯先將基本的東西做好再說

不會???
請先查閱 http://www.blueshop.com.tw/board/FUM20041006152627A9N/BRD20090907182243QWG.html

不想看??不想知道?
那我也不會想要回答了。看誰好心點幫幫他吧。我是懶的看程式碼了。
本篇文章回覆於2016-02-04 18:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

香帥
檢舉此回應
請將接收端的程式碼改為以下就可以
本篇文章回覆於2016-02-04 20:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

大家加油
檢舉此回應
謝謝大大回應,我習慣用記事本打字,沒注意到排版,那我再來試試看排版。
我依據以下的網頁設計多個檔案上傳的表單與接收端網頁:
http://www.codexworld.com/add-remove-input-fields-dynamically-using-jquery/
表單內容如下:


這一頁的script語法如下,其實跟參考網頁差不多:




接收端語法如下:




現在的問題是FILE這部分,我上傳兩張圖片,print_r($upload1_array)後內容如下:





請問我要如何使用foreach方式讀取出每一張圖片的檔案名稱?謝謝!
本篇文章回覆於2016-02-05 01:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

香帥
檢舉此回應
我以上程式碼是用您的程式碼並銷改測試過ok的
測試網址在http://php.a168a.com/uploadmanyfiles/u.htm
本篇文章回覆於2016-02-05 09:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

香帥
檢舉此回應
以上測試網址,上傳兩個圖檔後執行結果如下圖
本篇文章回覆於2016-02-05 09:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
多提點你一下。

$_FILES的陣列排法與我們所知的post排法有點不太一樣。
正常我們post的陣列是採用物件式的排法



但$_FILES則是分類式的排法


你可以看看這兩組陣列的差異性在哪

也就是說。它是將file相關值分類後。再將其對應的檔案再分開。

所以我要其名稱的話
我就會用


一般來說,在某些場合下。我會用如下的程式重新整合$_FILES成物件式的條件陣列



你可以試看看
本篇文章回覆於2016-02-05 11:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.