使用AJAX传递图片文件不成功
这个问题在这里已经有了答案:
问题应该在参数processData上 ,请将参数processData: false,
添加到您的ajax请求中,并尝试在php上获取您的图像。
$.ajax({
url: formURL,
type: form.attr('method'),
dataType: 'json',
data: formData,//form.serialize(),
processData: false, // tell jQuery not to process the data
contentType: false, // tell jQuery not to set contentType
beforeSend: function(){},
success: function(data, textStatus, jqXHR) {},
error: function(jqXHR, textStatus, errorThrown)
{
alert(jqXHR+ textStatus+ errorThrown);
},
complete: function(){}
});
希望help.good运气
将输入正确放置在一个表单中,并使用FormData()
将表单作为一个整体发送。 我会建议这样的事情:
<form method="post" enctype="multipart/formdata" id="myForm">
<input type="text" name="title" />
<input type="file" name="thumbnail" />
</form>
用js构建和发送数据:
var form = document.getElementById('myForm');
var formData = new FormData(form);
alert (formdata);
$.ajax({
url: "php/post-check.php",
type: "POST",
data: formData,
success: function (data) {
$("div#postresult").removeClass("alert alert-danger");
$("div#postresult").html(data);
}
});
现在你可以像这样获取php中的数据:
$title = $_POST['title'];
$thumb = $_FILES['thumbnail'];
$tmp_file_path = $thumb['tmp_name'];
你可以使用ajaxForm()像这样在async中发布整个表单:
$("#newpost").ajaxForm({
success: function(data) {
$("div#postresult").removeClass("alert alert-danger");
$("div#postresult").html(data);
},
error: function(a, textStatus, exception) {
}
});
AjaxForm不是核心JQuery的一部分,但你可以在这里找到源代码和文档
链接地址: http://www.djcxy.com/p/48653.html上一篇: Passing an image file is unsuccessful using AJAX
下一篇: Best approach to send big files to a server in a automatic way using a rest api?