如何将formData数组传递给php加载文件。如何将所有文件输入作为数组传递或迭代它?
$(document).ready(function(){
$('.add_more').click(function(e){
e.preventDefault();
$(this).before("<input name='file[]' class='file' type='file' /> <br> <input type='button' class='es' name='es' value='Upload This File' />");
});
$('.es').click(function (e) {
e.preventDefault();
var form = $('.form');
var formData = new FormData(form);
// | |
formData.append('file', $('.file')[0].files[0]);
$.ajax({
url: 'lib/upload.php',
type: 'post',
data: formData,
contentType: false,
processData: false,
cache: false,
success: function (data) {
$('#here').html(data);
}
});
});
});
和html(php)文件:
<form id="form" action="" enctype="multipart/form-data" method="post">
<input name="file[]" class="file" type="file" />
<input type="button" name="es" class="es" value="Upload This File" />
<br><br>
<button class="add_more">Add More Files</button>
</form>
如何将所有文件输入作为数组传递?
答案 0 :(得分:0)
首先,你没有文件输入的多个属性,你正在使用js中的类选择表单,而不是类,你的表单标签上有id。
<form id="form" action="" enctype="multipart/form-data" method="post">
<input name="file[]" multiple class="file" type="file" />
<input type="button" name="es" class="es" value="Upload This File" />
<br><br>
<button class="add_more">Add More Files</button>
</form>
,其次是当表单中存在文件输入时,为该表单创建的FormData
已经包含所有数据,包括文件,因此您不必手动推送它。所以只需发送如下。
$(document).ready(function(){
$('.add_more').click(function(e){
e.preventDefault();
$(this).before("<input name='file[]' class='file' type='file' /> <br> <input type='button' class='es' name='es' value='Upload This File' />");
});
$('.es').click(function (e) {
e.preventDefault();
var form = $('#form');
var formData = new FormData(form[0]);
$.ajax({
url: 'lib/upload.php',
type: 'post',
data: formData,
contentType: false,
processData: false,
cache: false,
success: function (data) {
$('#here').html(data);
}
});
});
});