如何使用 JSP/Servlet 和 Ajax 将文件上传到服务器? [英] How can I upload files to a server using JSP/Servlet and Ajax?

查看:28
本文介绍了如何使用 JSP/Servlet 和 Ajax 将文件上传到服务器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建一个 JSP/Servlet Web 应用程序,我想通过 Ajax 将文件上传到 servlet.我该怎么做呢?我正在使用 jQuery.

I'm creating a JSP/Servlet web application and I'd like to upload a file to a servlet via Ajax. How would I go about doing this? I'm using jQuery.

到目前为止我已经完成了:

I've done so far:

<form class="upload-box">
    <input type="file" id="file" name="file1" />
    <span id="upload-error" class="error" />
    <input type="submit" id="upload-button" value="upload" />
</form>

使用这个 jQuery:

With this jQuery:

$(document).on("#upload-button", "click", function() {
    $.ajax({
        type: "POST",
        url: "/Upload",
        async: true,
        data: $(".upload-box").serialize(),
        contentType: "multipart/form-data",
        processData: false,
        success: function(msg) {
            alert("File has been uploaded successfully");
        },
        error:function(msg) {
            $("#upload-error").html("Couldn't upload file");
        }
    });
});

但是,它似乎没有发送文件内容.

However, it doesn't appear to send the file contents.

推荐答案

就这一点而言,从 jQuery 使用的当前 XMLHttpRequest 版本 1 开始,不是可以通过 XMLHttpRequest 使用 JavaScript 上传文件.常见的解决方法是让 JavaScript 创建一个隐藏的