首先,我搜索了许多关于这个问题的主题,并且不想使用任何插件。
function addToDatabase(menuItem){
var formData = new FormData();
formData.append("Description", document.getElementById("DescriptionID").value);
jQuery.each($('#filesID')[0].files, function(i, file) {
formData.append('file-'+i, file);
});
$.ajax({
type: "POST",
url: "dbAdder.php",
data: formData,
cache: false,
contentType: false,
processData: false,
success: function(result){
$("#PageContent").html(result);
}
});
}
发送到服务器的Js函数。虽然在服务器端代码中$_POST['Description']
具有值,但$_FILES['file-0']
没有。
<input type="file" id="filesID" name="files[]" multiple />
<textarea id="DescriptionID" rows="5" cols="53"></textarea>
HTML代码部分。
.append()
吗?如果可以简单地将new FormData(document.getElementById('form'))
定义为要发送的数据,那就更好了。 - Yang$_FILES['files']
,而不是$_FILES['file-0']
。 - YangjQuery.each($('#filesID')[0].files, function(i, file) { formData.append('file-'+i, file); });
- Crackeraki