javascript - 使用jquery异步上传文件的操作

标签 javascript jquery ajax asynchronous upload

我想使用 jQuery 异步上传文件。这是我的 HTML:

<input type="file" id="f" name="f"/>
<input id="upload" type="button" value="Upload"/>

这是我的 JavaScript 代码:

$(document).ready(function () {
$("#upload").click(function () {
    var filename = $("#f").val();

    $.ajax({
        type: "POST",
        url: "addFile.do",
        enctype: 'multipart/form-data',
        data: {
            file: filename
        },
        success: function () {
            alert("All Files Have Been Uploaded ");
        }
    });
});
});

我只得到文件名而不是我上传的实际文件

我正在使用 This Plugin上传文件。

最佳答案

与您想象的不同,代码不使用该插件上传文件。相反,您明确提出了一个 ajax 请求。发生错误是因为 <input type="file"> 的值是文件名,这是您在请求中发送的唯一数据。

相反,您需要使用 $(form).ajaxform() 绑定(bind)表单;然后在点击处理程序中,您可以触发表单上的提交事件。

因此像下面这样的东西应该可以解决问题:

html:

<form method="post" action="addFile.do">
<input type="file" id="f" name="f"/>
<input id="upload" type="button" value="Upload"/>
</form>

和 JavaScript:

$('form').ajaxform({
    success: function () {
        alert("All Files Have Been Uploaded ");
    }
});

$("#upload").click(function() {
    $('form').submit();
});

关于javascript - 使用jquery异步上传文件的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23905491/

相关文章:

javascript - 多次延迟调用 Promise Bluebird.js

javascript - 如何从存储在 var 中的 HTML 中获取类?

jquery - validationEngine 未使用 onValidationComplete 提交表单

javascript - 只有一个列表元素在页面加载时排在第一位

javascript - 努力让一些基本的 JQuery 和 JS 代码工作

$.ajax 实用程序中的 JQuery 错误选项

javascript - 在 Typescript 中避免 AJAX Gets 多次回调的优雅方法?

javascript - 加载远程 Service Worker,在不同的域中运行?

javascript - 如何在 SVG 中创建嵌入阴影(透明背景)?

javascript - &&=、||= 和 ??= 的作用是什么?