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

使用RequestParam上传Spring文件

施洛城
2023-03-14

根据Spring中文件上传的标准方式:https://spring.io/guides/gs/uploading-files/,我们将使用@requestparam(“file”)MultipartFile文件接收从表单上传的文件。

但是我想知道为什么注释是“requestparam”而不是“requestbody”,因为在我们指定“method=post”的表单中,数据不应该在表单post body中吗?

多谢!

共有1个答案

田普松
2023-03-14

为了在spring中获得multipartfile,我们可以使用@requestpart@requestparam。这些注释用于关联multipart/form-data请求的部分。这是在spring文档中编写的:

公共@接口请求部件

可用于将“multipart/form-data”请求的部分与方法参数关联的注释。支持的方法参数类型包括与Spring的MultipartResolver抽象结合的MultipartFile、与Servlet3.0多部分请求结合的javax.Servlet.http.part或者对于任何其他方法参数,部分内容通过HttpMessageConverter传递,同时考虑到请求部分的“Content-Type”头。这类似于@RequestBody根据非多部分常规请求的内容解析参数所做的工作。

请注意,@RequestParam注释还可以用于将“multipart/form-data”请求的部分与支持相同方法参数类型的方法参数相关联。

主要区别在于,当方法参数不是字符串时,@RequestParam依赖于通过注册的转换器或PropertyEditor进行类型转换,而@RequestPart依赖于HttpMessageConverters,同时考虑到请求部分的'Content-Type'标头。@RequestParam可能用于名称-值表单字段,而@RequestPart可能用于包含更复杂内容的部分(例如JSON、XML)。

链接:https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/requestpart.html

 类似资料:
  • 我已成功将图像文件上载到。但是我在使用MockMvc测试时遇到了一个问题。当我运行测试用例时,我发现异常文件未找到,访问被拒绝。 控制器看起来像这样: 我的测试用例如下所示: 我的jsp文件如下所示:

  • 本文向大家介绍使用Spring Boot上传文件功能,包括了使用Spring Boot上传文件功能的使用技巧和注意事项,需要的朋友参考一下 上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spring Boot上传文件的小案例。 1、pom包配置 我们使用Spring Boot最新版本1.5.9、jdk使用1.8、tomcat8.0。 引入了 spring

  • 我需要上传文件使用Spring引导和角,所以这是控制器代码,很好地工作使用邮差 -component.ts代码: -HTML代码: 出现此错误

  • 从今天起,我尝试通过ajax将文件上传到我的应用程序中。这是我的控制器: html代码中的表单: 在dispacher-servlet.xml中添加了bean。当jquery发送ajax post请求时,得到内部错误(500),我的堆栈如下所示: 我尝试将@RequestParam注释更改为 上载的文件是我自己的类,具有getter和setter,但是,我在中获取NullPointerExcepo

  • 需要数据库集成代码(CRUD操作) 如何使用SpringMVC上传Excel文件?MultipartFile类提供了对上载文件的详细信息的访问,包括文件名、文件类型等。我们可以使用简单的HTML页面显示以下信息: 我们还可以将其他信息与上载的文件一起发送到服务器。我们只需在表单中包含必填字段: 文件上传服务。JAVA

  • 如何通过Ajax发送文件? 2018-08-03 21:00:29.317错误9204---[nio-8080-exec-3]O.A.C.C.C.[.[.[/].[dispatcherServlet]:servlet.Service()在路径[]上下文中的servlet[dispatcherServlet]引发异常[请求处理失败;嵌套异常为org.springframework.web.multi