美好的一天全部,表單數據通過ajax和文本字段一起上傳多個文件
我有一個表單將有多個字段。此外,表單正通過使用ajax的表單數據方法提交給php文件。
以下是提交表單數據的JavaScript代碼。
$(".update").click(function(){
$.ajax({
url: 'post_reply.php',
type: 'POST',
contentType:false,
processData: false,
data: function(){
var data = new FormData();
data.append('image',$('#picture').get(0).files[0]);
data.append('body' , $('#body').val());
data.append('uid', $('#uid').val());
return data;
}(),
success: function(result) {
alert(result);
},
error: function(xhr, result, errorThrown){
alert('Request failed.');
}
});
$('#picture').val('');
$('#body').val('');
});
而且,下面是實際的形式:
<textarea name=body id=body class=texarea placeholder='type your message here'></textarea>
<input type=file name=image id=picture >
<input name=update value=Send type=submit class=update id=update />
這種形式和javascript工作好,因爲它們。但是,我試圖能夠使用這一個單一的type = file字段屬性將多個文件上傳到php文件。就像現在一樣,它一次只能取一個文件。如何調整表單和JavaScript代碼以便能夠處理多個文件上傳?
任何幫助將不勝感激。
謝謝!
事實上,它似乎工作,但有一個小問題。當我從電腦中選擇文件,然後按提交按鈕...警報功能工作是,但仍然,瀏覽器似乎重新加載..或顯示加載圖標旋轉。我希望當點擊提交按鈕時,該文件被髮送到php文件並彈出警告框。當我按瀏覽器的刷新按鈕時,它不會問我是否要重新提交信息。目前,瀏覽器問我是否要重新提交.....如何解決? ..當按鈕被點擊時,我不希望瀏覽器加載。 – maraj
我已經更新了我的答案,現在應該可以。你需要爲你的函數添加event param,如下所示:'function(e)'並使用'e.preventDefault();'來防止表單重新加載。查看更新的答案。 – loelsonk
@loelsonk我跟着你的鏈接來保存多個文件瀏覽。我從我的系統中選擇了多個文件,並在下面的函數中提示了一個文本:jQuery.each(jQuery('#file')[0] .files,function(i,file))data.append('file-' + i,file); }); 但它只警告一次。我只能保存上次瀏覽的文件。我怎樣才能保存所有瀏覽的文件。 –