Javascript 使用AJAX传递图像文件失败

Javascript 使用AJAX传递图像文件失败,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我遇到了一个错误,上传图像文件时无法通过AJAX传递图像文件。这是我的密码 阿贾克斯 PHP HTML 标题 视频缩略图**仅接受JPEG和PNG** PHP代码本身运行良好,因此我假设问题出在AJAX部分,但是我不确定如何解决这个问题。感谢所有的帮助 问题应该在参数processData上,请添加参数processData:false, 根据ajax请求,尝试在php上获取图像 $.ajax({ url: formURL,

我遇到了一个错误,上传图像文件时无法通过AJAX传递图像文件。这是我的密码

阿贾克斯

PHP


HTML


标题
视频缩略图**仅接受JPEG和PNG**

PHP代码本身运行良好,因此我假设问题出在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(){}
                });

希望对您有所帮助。祝您好运

将您的输入正确地放在一个表单中,然后使用
FormData()
将表单作为一个整体发送。我建议这样做:

<form method="post" enctype="multipart/formdata" id="myForm">
   <input type="text" name="title" />
   <input type="file" name="thumbnail" />
</form>
现在,您可以通过以下方式在php中获取数据:

$title = $_POST['title'];
$thumb = $_FILES['thumbnail'];
$tmp_file_path = $thumb['tmp_name'];

您可以使用ajaxForm()以异步方式发布整个表单,如下所示:

$("#newpost").ajaxForm({
    success: function(data) {
        $("div#postresult").removeClass("alert alert-danger");
        $("div#postresult").html(data);
    },
    error: function(a, textStatus, exception) {

    }
});

AjaxForm不是核心JQuery的一部分,但是您可以找到源代码和文档

您能详细说明错误吗?试试这个:JQuery不提供AjaxForm方法。这是正确的。然而,问题只是指出答案应该使用ajax,而不是JQuery核心功能。我编辑了我的答案though@Quentin你介意更正反对票吗?
<form method="post" enctype="multipart/formdata" id="myForm">
   <input type="text" name="title" />
   <input type="file" name="thumbnail" />
</form>
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);
    }
});
$title = $_POST['title'];
$thumb = $_FILES['thumbnail'];
$tmp_file_path = $thumb['tmp_name'];
$("#newpost").ajaxForm({
    success: function(data) {
        $("div#postresult").removeClass("alert alert-danger");
        $("div#postresult").html(data);
    },
    error: function(a, textStatus, exception) {

    }
});