Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 没有多部分/表单数据的Spring MVC文件上载?_Java_Spring_Rest_Spring Mvc - Fatal编程技术网

Java 没有多部分/表单数据的Spring MVC文件上载?

Java 没有多部分/表单数据的Spring MVC文件上载?,java,spring,rest,spring-mvc,Java,Spring,Rest,Spring Mvc,我有一个类似于POST/animals/1/images的路径。我在文档中读到,您可以将MultipartFile声明为参数,它将包含该文件。但这是对的吗?我的意思是,当您只有一个文件要上传(或一个文件数组)时,我是否需要使用内容类型多部分/表单数据?如果没有,方法签名应该是什么?据我所知,如果您通过HTTP协议上传任何带有POST的文件,您必须使用多部分/表单数据。表单数据只是一个名称,因为通常(总是?)当您通过HTTP发送内容时,您使用表单 对于这种情况,使用MultipartFile参数是

我有一个类似于
POST/animals/1/images
的路径。我在文档中读到,您可以将
MultipartFile
声明为参数,它将包含该文件。但这是对的吗?我的意思是,当您只有一个文件要上传(或一个文件数组)时,我是否需要使用内容类型
多部分/表单数据
?如果没有,方法签名应该是什么?

据我所知,如果您通过HTTP协议上传任何带有POST的文件,您必须使用
多部分/表单数据。
表单数据
只是一个名称,因为通常(总是?)当您通过HTTP发送内容时,您使用表单


对于这种情况,使用
MultipartFile
参数是一种有效的解决方案-当然,除非您更愿意使用MultipartFile作为其唯一属性来编写整个命令对象,根据惯例,这是首选方法。

您可以使用以下代码片段:

@POST
@Path("/uploadfile")
public void upload(File file) {
  //TODO code goes here


}

如果您的表单包含除此文件以外的其他信息,我建议您使用默认的Spring上传解决方案(使用Apache上传解决方案),并避免使用Servlet 3的已知解决方案,因为您将遇到UTF-8编码问题。我这么说只是为了以防万一,因为我花了很多时间在这件事上。嗨,塔尔西奥,欢迎来到Stack Overflow!您是否可以添加一个书面解释,说明为什么(或为什么不)需要内容类型
多部分/表单数据
。否则,必须对正文进行处理,以将数据与附件分开。