当前位置: 首页 > 知识库问答 >
问题:

在spring中使用ajax和jquery实现文件上传

华心思
2023-03-14
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。对此有没有其他的解决办法?

共有1个答案

陈扬
2023-03-14

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

您需要使用一个插件来创建正确的请求。这是我用过的。

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

 类似资料:
  • 问题内容: 诚然,Stack Overflow周围也存在类似的问题,但似乎没有一个完全符合我的要求。 这是我想要做的: 上载整个数据格式,其中一个是 单个 文件 使用Codeigniter的文件上传库 到这里为止,一切都很好。数据根据需要进入我的数据库。但我也想通过AJAX帖子提交表单: 使用原生HTML5 File API,而不是Flash或iframe解决方案 最好与低级jQuery方法接口

  • 问题内容: 我已经进行了很多搜索,以了解如何使用Ajax从表单上载文件,并发现xhr2应该可以做到。但是,我已经尝试过使用FormData对象,但它不起作用。 这是一个简单的html表单 这是“ post.php”文件,当以“老式”方式运行时,它可以正常工作: 这是“ upload.js” 您知道为什么它不起作用吗?控制台返回“未发送文件”。 非常感谢 ! 问题答案: 尝试替换代码: 有了这个:

  • 问题内容: 我希望在用户使用$ .ajax在输入文件中选择文件时异步上传文件。但是接收调用返回索引的PHP未定义。jQuery代码是下一个: 以及调用该调用的php: 谢谢 问题答案: 您无法使用AJAX上传文件,但可以使用,因此不必刷新当前页面。 很多人都对插件束手无策,但您可以轻松完成此操作,并具有AJAX请求的所有功能。 不必使用AJAX函数,而是将表单提交到具有事件处理程序的隐藏文件中,以

  • 问题内容: 我正在尝试使用jQuery AJAX和通用处理程序上传图像文件。但是似乎文件没有被传递给处理程序。提交后始终为null:-/ 我究竟做错了什么? HTML: JS: ASHX: 问题答案: 设法使这个工作:) 这是我的代码…

  • 我试图通过使用FormData通过AJAX上传文件。如果我提交AJAX调用而没有选择任何要上传的文件,post工作正常,服务器上接收到其他字段(不是文件上传)。但是,如果我选择一个要上传的文件,调用到达服务器时没有任何数据(在PHP中,$_POST和$_FILES数组都是完全空的)。我知道如果您没有告诉jQuery不要设置contentType可能会发生这种情况,但是我将contentType和p

  • 本文向大家介绍jquery ajax实现文件上传功能实例代码,包括了jquery ajax实现文件上传功能实例代码的使用技巧和注意事项,需要的朋友参考一下 下面看下ajax实现文件上传     没有使用插件 一、单文件上传 二、多文件上传 这个是多选上传,关键是multiple="multiple"这个属性,另外使用的接口也是多文件上传的接口。 当然也可以使用单文件上传的模式,多次选择就可以了,只