繁体   English   中英

在春季使用ajax和jquery上传文件

[英]File Upload using ajax and jquery in spring

var urlUpload = "${root}manager/uploadFile.html";
var params = $('#topicForm').serialize();

    $.ajax({
        type: 'POST',
        url: urlUpload,
        data: params,
        contentType: 'multipart/form-data',
                processData: false,
        success: function(data) {
            alert("success");
        }
    });

@RequestMapping(value="/manager/uploadFile.html", method = RequestMethod.POST)
public String uploadFile(@ModelAttribute("topicForm") TopicForm topicForm,        
@RequestParam("topicDoc") MultipartFile multipartFile ModelMap model) { ... }

我收到以下异常

org.springframework.web.multipart.MultipartException:无法解析多部分servlet请求; 嵌套的异常是org.apache.commons.fileupload.FileUploadException:该请求被拒绝,因为未找到多部分边界。

插件工作正常,谢谢。

var urlUpload = "${root}manager/uploadFile.html?categoryId="+$("#category").val()+"&topicName="+$("#topicName").val();
 $.ajaxFileUpload({
 url:urlUpload, 
 secureuri:false,
 fileElementId:'fileupload',
 dataType: 'html',
 success: function (data, status) {
   alert("success");
 }
});

插件工作正常,现在我需要将几个表单字段与输入文件一起发送到控制器。 在上面的ajax调用中,我将值附加到URL。 还有其他解决方案吗?

问题是您试图上载表单的URL编码序列化,同时声称它是多部分的(请参阅JQuery的serialize()函数的文档 )。

您需要使用将创建正确请求的插件。 是我用过的。

或者,您可以使用HTML5上传文件。 我还没做

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM