我使用下面的代码用js发送图像文件的数据,但是当我添加
时效果很好 var image = document.getElementById("img_book").files[0];
var form = new FormData();
form.append("image", image);
我收到附加错误。
这是我的代码
$("#publish").click(function() {
var x = event.target.responseText;
document.getElementById("book_id").setAttribute("value",x);
var image = document.getElementById("img_book").files[0];
var form = new FormData();
form.append("image", image);
var title = document.getElementById("title").value;
var desc = document.getElementById("desc").value;
var cat = document.getElementById("cat").value;
var sub_cat = document.getElementById("sub_cat").value;
var tags = document.getElementById("tags").value;
var lang = document.getElementById("lang").value;
var privacy = document.getElementById("privacy").value;
var id = document.getElementById("book_id").value;
//if((title !== "") && (desc !== "") && (cat !== "") && (sub_cat !== "") && (lang !== "") && (privacy !== "")) {
$.ajax({
url: "ajax/upload/publish.php",
method : "POST",
data : {'form' : form ,'title' : title,'desc' : desc, 'cat' : cat , 'sub_cat' : sub_cat , 'tags' : tags , 'lang' : lang , 'privacy' : privacy , 'id' : id},
cache: true,
success : function(data) {
if(data.status == 'success'){
window.location.replace("http://localhost/book/book.php?id=" + id);
}else if(data.status == 'error'){
alert("Error on query!");
}
}
});
//}
});
答案 0 :(得分:1)
您必须将所有参数附加到formdata对象,或者更容易将包含数据的表单传递给from数据构造函数。
然后在请求中单独传递formdata对象,还必须将contentType和processData设置为false。