【问题标题】:Upload operation of file asynchronously using jquery使用jquery异步上传文件的操作
【发布时间】:2014-07-17 07:33:32
【问题描述】:

我想使用 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上传文件。

【问题讨论】:

标签: javascript jquery ajax asynchronous upload


【解决方案1】:

与您想象的不同,代码不使用该插件来上传文件。相反,您显式地发出 ajax 请求。发生错误是因为 &lt;input type="file"&gt; 的值是文件名,这是您在请求中发送的唯一数据。

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

因此,如下所示应该可以解决问题:

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();
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-20
    • 2018-06-11
    相关资源
    最近更新 更多