我有一個表單,允許用戶通過克隆文件輸入添加多個文件。但是,當我提交表單並使用'print_r($ _ FILES)'時,它不會顯示我添加的所有文件,只有第一個。
HTML:
<form action="admin/admin_area/save_personnel" method="post" enctype="multipart/form-data" id="add_personnel">
<div class="certificates_list">
<input type="file" name="user_certificates[]" />
<input type="text" name="certificate_name[]" class="right"/>
<input type="text" name="expiry_date[]" class="expiry_date" />
</div>
<div id="certificates_new"></div>
<p><button type="button" id="add_certificate">Add another certificate</button></p>
</form>
的jQuery:
$(function() {
$('#add_certificate').click(function(event){
event.preventDefault();
var clone = $('.certificates_list:first').clone(true).appendTo('#certificates_new');
clone.find("input").val("");
clone.find(".expiry_date").datepicker('destroy').removeClass('hasDatepicker').removeAttr('id').datepicker({
dateFormat: 'dd-mm-yy',
yearRange: '1900',
changeMonth: true,
changeYear: true }).attr('name', 'expiry_date[]');
$(":input").each(function (i) { $(this).attr('tabindex', i + 1); });
});
});
如果我上傳3個文件和print_r的($ _ FILES)我得到以下只顯示一個文件
Array ([name] => Array ([0] => license.txt) [type] => Array ([0] => text/plain) [tmp_name] => Array ([0] => C:\wamp\tmp\php42B1.tmp) [error] => Array ([0] => 0) [size] => Array ([0] => 2496))
爲什麼只有拿起其中的一個文件,而不是所有的人?過去我做過類似的事情,直到現在我還沒有遇到任何問題。任何幫助將不勝感激! $ _FILES ['user_certificates]的
的var_dump給我這個(後我上傳3個文件)
array (size=5)
'name' =>
array (size=1)
0 => string 'license.txt' (length=11)
'type' =>
array (size=1)
0 => string 'text/plain' (length=10)
'tmp_name' =>
array (size=1)
0 => string 'C:\wamp\tmp\phpE11.tmp' (length=22)
'error' =>
array (size=1)
0 => int 0
'size' =>
array (size=1)
0 => int 2496
我使用隱藏元件的形式的外和克隆該。每個給自己我猜:)。你可以'var_dump($ _ FILES ['user_certificates']);'請嗎? –
我已將它添加到我的問題的底部 – Pooshonk
您是否嘗試過手動添加沒有Javascript的三個文件元素。表單是手動提交還是執行任何jQuery/JS? –