2013-07-10 28 views
2

我正在使用輸入type="file" multiple="multiple"和一個PHP上傳循環。多文件上傳字段選項不能上傳所有文件

<input name="data[]" id="file" type="file" multiple="multiple" class="txtinput2" /> 

以上是我的HTML,下面是我的PHP:

if(isset($_POST['action'])=='uploadfiles'){ 
$count_data=count($_FILES['data']) ; ######### count the data ##### 

for($x=0;$x<$count_data;$x++) 

當我回聲count_data它給我的的輸出,但是當我選擇文件,它說在輸入欄中選擇的文件。 multiple="multiple"僅支持上傳?

我檢查了PHP的信息,它說,最大上傳文件,最大後大小8米和最大文件大小128米和所有我要上傳的文件的總大小爲1.94兆

Array ([name] => Array ([0] => DSCF0960.jpg [1] => DSCF0961.jpg [2] => DSCF0963.jpg [3] => DSCF0964.jpg [4] => DSCF0966.jpg [5] => DSCF0967.jpg [6] => DSCF0968.jpg [7] => DSCF0969.jpg [8] => DSCF0970.jpg [9] => DSCF0971.jpg [10] => DSCF0972.jpg [11] => DSCF0973.jpg [12] => DSCF0974.jpg [13] => DSCF0975.jpg [14] => DSCF0976.jpg [15] => DSCF0977.jpg [16] => DSCF0978.jpg [17] => DSCF0979.jpg [18] => DSCF0980.jpg [19] => DSCF0981.jpg) [type] => Array ([0] => image/jpeg [1] => image/jpeg [2] => image/jpeg [3] => image/jpeg [4] => image/jpeg [5] => image/jpeg [6] => image/jpeg [7] => image/jpeg [8] => image/jpeg [9] => image/jpeg [10] => image/jpeg [11] => image/jpeg [12] => image/jpeg [13] => image/jpeg [14] => image/jpeg [15] => image/jpeg [16] => image/jpeg [17] => image/jpeg [18] => image/jpeg [19] => image/jpeg) [tmp_name] => Array ([0] => /tmp/php4uI9g8 [1] => /tmp/phpVx5WrZ [2] => /tmp/php2DbRCQ [3] => /tmp/phpT2gSNH [4] => /tmp/phpPDlZYy [5] => /tmp/phpMzCcaq [6] => /tmp/phpRxkwlh [7] => /tmp/phpgoRWw8 [8] => /tmp/phpYlGsIZ [9] => /tmp/phpYBG1TQ [10] => /tmp/phpTQBD5H [11] => /tmp/phpQesphz [12] => /tmp/php5U4dtq [13] => /tmp/phpp2G5Eh [14] => /tmp/phpwaZZQ8 [15] => /tmp/php4W0W2Z [16] => /tmp/php7g3WeR [17] => /tmp/phpeZj0qI [18] => /tmp/phpAGo6Cz [19] => /tmp/phpbXlfPq) [error] => Array ([0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 [10] => 0 [11] => 0 [12] => 0 [13] => 0 [14] => 0 [15] => 0 [16] => 0 [17] => 0 [18] => 0 [19] => 0) [size] => Array ([0] => 79605 [1] => 75839 [2] => 71245 [3] => 63228 [4] => 64201 [5] => 74440 [6] => 75350 [7] => 73367 [8] => 72491 [9] => 69725 [10] => 75508 [11] => 72755 [12] => 76076 [13] => 72140 [14] => 68745 [15] => 77859 [16] => 74281 [17] => 74613 [18] => 71702 [19] => 75916)) 
+0

檢查您在服務器側柱極限。 – mohkhan

+1

'print_r($ _ FILES ['data'])'的結果是什麼? – Prix

+0

評論時間太久,貼了編輯原始問題 – Chitowns24

回答

0

根據您在問題中所說的內容,您的數組中共有20個文件分爲5個子數組,這是您的上傳限制。

我檢查了PHP的信息,它說,最大文件上傳20

第一個數組是爲了每個文件的舊文件名。
第二個數組是按順序排列的每個文件的文件類型。
第三個數組是文件被保存的位置及其臨時名稱。
第四個數組是如果任何文件無法上傳或沒有,我假設它將是0或1是0沒有錯誤。
最後一個數組是按順序排列的每個文件的文件大小。

您使用計數的所有文件:

$count_data=count($_FILES['data']['name']) -1; 

而且這樣的閱讀:

for($i=0; $i < $count_data; $i++) 
{ 
    if ($_FILES['data']['error'][$i] == 0) 
    { 
     $name = $_FILES['data']['name'][$i]; 
     $temp = $_FILES['data']['tmp_name'][$i]; 
     $type = $_FILES['data']['type'][$i]; 
     $size = $_FILES['data']['size'][$i]; 
    } 
} 
+0

不能相信我錯過了,謝謝主席 給人看,改數($ _ FILES ['data'] ['name']) – Chitowns24