如何发送ajax请求上传文件

时间:2013-03-12 17:42:00

标签: php jquery ajax file-upload

我有这样的标记      我现在没有使用表单我想使用ajax上传图像

$('#file').on('change', function(e) {
    $.ajax({
        url: "upload.php",
        type: "POST",
        data: ?,
        processData: false,
        contentType: false,
        success: function (response) {
            console.log(response);
        }
    });
})

在数据中我要发送什么?我在堆栈溢出中只得到了这个ajax,但我无法理解。还有一件事我怎样才能在PHP文件中重现数据

谢谢你?

3 个答案:

答案 0 :(得分:1)

通过ajax上传图片是不可能的。你可以做的是创建一个隐藏的iframe并使用它上传文件。

答案 1 :(得分:0)

请注意,通常通过AJAX上传文件是一件痛苦的事。您可以在此处查看相关问题File Upload via AJAX within JQuery

就个人而言,我在提交时使用隐藏的iframe生成,并提供表单的克隆。完成后,iframe的内容将被追回到jQuery。在旧的IE版本中,我找不到另一种workind方式。

答案 2 :(得分:0)

您尝试执行的操作可以在支持FormData功能

的浏览器中完成
$('#file').on('change', function(e) {
    var data = new FormData();
    data.append('file',this.files[0]);
    $.ajax({
        url: "upload.php",
        type: "POST",
        data: data,
        processData: false,
        contentType: false,
        success: function (response) {
            console.log(response);
        }
    });
})