Javascript 使用jquery异步上传文件操作

Javascript 使用jquery异步上传文件操作,javascript,jquery,ajax,asynchronous,upload,Javascript,Jquery,Ajax,Asynchronous,Upload,我想使用jQuery异步上传文件。这是我的HTML: <input type="file" id="f" name="f"/> <input id="upload" type="button" value="Upload"/> 我得到的只是文件名,而不是我上传的实际文件 我正在使用来上传文件。与您想象的不同,代码没有使用该插件来上传文件。而是显式地发出ajax请求。发生此错误的原因是的值是文件名,这是您在请求中发送的唯一数据 相反,您需要使用$(form).ajaxfo

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

<input type="file" id="f" name="f"/>
<input id="upload" type="button" value="Upload"/>
我得到的只是文件名,而不是我上传的实际文件


我正在使用来上传文件。

与您想象的不同,代码没有使用该插件来上传文件。而是显式地发出ajax请求。发生此错误的原因是
的值是文件名,这是您在请求中发送的唯一数据

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

因此,下面这样的事情应该起作用:

html:


像现在一样使用插件。
$(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 ");
        }
    });
});
});
<form method="post" action="addFile.do">
<input type="file" id="f" name="f"/>
<input id="upload" type="button" value="Upload"/>
</form>
$('form').ajaxform({
    success: function () {
        alert("All Files Have Been Uploaded ");
    }
});

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