3
好傢伙我的html代碼:jQuery的AJAX後處理文件,多個文件和文本輸入
<form action="post.php" enctype="multipart/form-data" method="post">
<input type="text" name="name" id=""><br>
<input type="file" name="poster" id="poster"><br>
<input type="file" name="scene[]" id="scene" multiple><br>
<input type="submit" value="POST">
</form>
當你看到一個文件,多個文件,而且我有一個文本值。這個值'ajax',一次發送。我使用'JQuery'。
我不能以任何方式
$(function(){
$('input[type="submit"]').click(function(e){
e.preventDefault();
var file_data = $('#poster').prop('files')[0];
var form = $('form').serialize();
var form_data = new FormData();
$.each($('input[name="scene[]"]'),function(i, obj) {
$.each(obj.files,function(j,file){
form_data.append('photo['+i+']', file);
})
});
form_data.append(form);
form_data.append('file',file_data);
alert(form_data);
$.ajax({
url:'post.php',
cache:false,
contentType:false,
processData:false,
async:false,
data:form_data,
type:'post',
success:function(answ){
$('#result').html(answ);
}
})
})
})
我看着其他類似的解決方案上運行,但它並沒有解決我的問題 和索裏我的英語不好。
TY非常多。新的FormData(this);我沒有想過。 omg – vulkan
沒問題,很樂意幫忙。爲了您的參考,這裏是[MDN中的FormData條目](https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData) –
@RoryMcCrossan,這將創建表單的名稱 - 值對'name屬性。我正在使用ASP.NET將服務器端控件的元素名稱弄亂。因此,我使用元素的ID來使用序列化函數構造名稱 - 值對(通過id循環所有表單控件)。有沒有一種方法可以序列化文本控件並將文件數據附加到formdata?我可以按照OP的設法手動完成。提前致謝! –