$ .ajax()文件上传

时间:2012-01-02 14:04:05

标签: javascript jquery

如何在jQuery函数$ .ajax()中上传图像?之后我想通过FileUpload library

在Servlet上处理它

这是形式:

<form id="avatarUploadForm" action="upload" method="post" enctype="multipart/form-data">
                    <input name="data" id="file" type="file"><br>
                    <input id="selectFileButton" type="button" value="Select"><br>
                    <input id="uploadButton" type="button" value="Upload"><br>
                </form>

我有$ .ajax()方法:

$('#uploadButton').click(function() {
    var $form = $('#avatarUploadForm');
    var jsonFormData = $form.serializeObject();

    $.ajax({
        data : { 'file' : jsonFormData },
        type : 'POST',
        contentType : 'multipart/form-data',
        dataType : 'text',
        url : 'upload',
        success: function(){
            alert('uploaded');
        }
    });
});

和FileUpload方法,它必须解析我的请求。它在UploadServlet中:

protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
List items = upload.parseRequest(request);

如何将数据从表单转换为HttpServletRequest请求?

2 个答案:

答案 0 :(得分:2)

你无法用ajax做你所要求的。 这是一个非常好的上传指南,无需刷新页面,实现“使用ajax上传”的功能

upload-image-using-hidden-iframe

答案 1 :(得分:0)

您可以在画布中加载它,使用toDataURL()方法并发送base64字符串编码值。这只适用于现代浏览器(因此没有旧的IE)