使用AJAX传递图片文件不成功

这个问题在这里已经有了答案:

  • 用jQuery.ajax发送multipart / formdata 11个答案

  • 问题应该在参数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?