2010-10-23 34 views
2

我目前有一個帶有單個文件上傳輸入的表單。

原來的形式輸入我已經試過

<input type="file" name="userFile[]" /> 
and 
<input type="file" name="userFile1" /> 

我也有一個鏈接使用

產生更多的輸入字段如果已經試過的方法:
一)

counter = 1; 
    function addInput(){ 
counter ++; 
    $('#divName').append('&lt;input type="file" name="userFile[]" ' />);   
} 

b)

var counter = 1; 
function addInput(){ 
counter++; 
$('#divName').append('&lt;input type="file" name="userFile'+counter+'" ' />); 
} 

我不認爲這個問題是JS相關的,但可能是我認爲的服務器。

的問題是,當我終於按提交按鈕,然後通過文件到服務器,並嘗試訪問所有$_FILES['userFile']['name']/['size']/['error']等價值,只有最初的原始形式上傳值可以呼應/印刷。我嘗試上傳大文件進行測試我知道所有文件都已上傳,但一旦它到達服務器端,只能訪問一個文件。

任何人都可以給我一點關於可能會發生什麼? 我希望我解釋這個權利,如果你需要澄清,問我任何問題。

更多信息

經過一些測試,它看起來像jQuery可能是問題,畢竟。 在上述複製字段的方法中,只有第一個原始輸入在文件上傳時才被識別。

但是,如果我創建三個原始輸入字段並將其正常上載到它們,則$_FILES數組中的所有文件都應該被識別。

那麼爲什麼jQuery生成的字段不在表單中發佈?

+0

你有沒有通過檢查[手冊頁](http://www.php.net/manual/en/features.file-upload.multiple.php)?在特定的關於'max_file_uploads'的說明? – lonesomeday 2010-10-23 17:12:14

+0

我是否理解正確,您嘗試遍歷'$ _FILES ['userFile'] ['name']'數組?嘗試迭代'$ _FILES ['userFile']來代替。 – NOtherDev 2010-10-23 17:16:48

+0

即使我只print_r整個$ _FILES數組,它只會給我第一個上傳的文件,如下所示:Array([userFile] => Array([name] => Array([0] => IMG_0003(2).JPG) [array] [] => Array([0] => image/jpeg)[tmp_name] => Array([0] => C:\ server \ tmp \ php924.tmp)[error] => Array([0] = > 0)[size] => Array([0] => 1777374))) – Ryan 2010-10-23 17:27:12

回答

0

我有同樣的問題..我所有的努力都是徒勞的,但最終我在PHP手冊中找到了一個相當不錯的筆記。這很簡單,但很適合我完全...

「多個上傳可能不會,如果你使用一個表,用於顯示您的 形式輸入時<form>元素<table>元件工作。在這種情況下, 只有第一個文件將被上傳

<form>元素元素來得到它的工作。」

請點擊此鏈接爲全音符,有重新排列多個上傳文件陣列的功能一個易於次使用的方式。

http://php.net/manual/en/features.file-upload.multiple.php

+0

HTML代碼驗證也有幫助。我有一個錯誤​​ – michalzuber 2015-09-17 14:08:17

相關問題