@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("/uploadFile")
public POSResponse singleSave(@FormDataParam("file") MultipartFile file) {
Response response = new Response();
String fileName = null;
if (!file.isEmpty()) {
try {
fileName = file.getOriginalFilename();
byte[] bytes = file.getBytes();
BufferedOutputStream buffStream = new BufferedOutputStream(new FileOutputStream(new File("d:\\" + fileName)));
buffStream.write(bytes);
buffStream.close();
} catch (Exception e) {
}
} else {
}
return response;
}
当我点击这个api时,我得到错误“415:Unsupported Media type”,这意味着不受支持的头。我想将文件从ARC加载到控制器。
我在pom.xml文件中添加了一些maven依赖项。
我的pom文件:
<!-- multipart file dependency -->
<dependency>
<groupId>org.jvnet</groupId>
<artifactId>mimepull</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>org.jvnet.mimepull</groupId>
<artifactId>mimepull</artifactId>
<version>1.9.5</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>1.17.1</version>
</dependency>
我不确定您编写的代码,但这是我在spring-mvc中如何做到的
用例:上载图像
>
在我们的web应用程序的上下文配置文件(dispatcherServlet-context.xml)中为CommonsMultipartResolver添加一个bean定义,
如下所示:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10240000"/>
向pom.xml添加依赖项,输入组Id为commons-fileupload,工件Id为commons-fileupload,版本为1.2.2;选择Scope为Compile;然后单击OK按钮。
类似地,再添加一个组Id依赖项为org.apache.commons,工件Id为commons-io,版本为1.3.2;选择Scope为Compile;单击OK按钮;并保存pom.xml文件
使用java类中相应的setter和getter添加对org.springframework.web.multipart.multipartfile
的引用将文件定义为属性,如下所示:
@JsonIgnore
private MultipartFile productImage;
@XmlTransient
public MultipartFile getProductImage() {
return productImage;
}
public void setProductImage(MultipartFile productImage) {
this.productImage = productImage;
}
在要上载文件的jsp中,使用以下标记
在jsp中将form标记中的enctype属性设置为multipart/form-data,如下所示
<form:form modelAttribute="newProduct" class="form-horizontal" enctype="multipart/form-data">
public String processAddNewProductForm(@ModelAttribute("newProduct") @Valid Product productToBeAdded, BindingResult result, HttpServletRequest request) {
if(result.hasErrors()) {
return "addProduct";
}
MultipartFile productImage = productToBeAdded.getProductImage();
String rootDirectory = request.getSession().getServletContext().getRealPath("/");
if (productImage!=null && !productImage.isEmpty()) {
try {
productImage.transferTo(new File(rootDirectory+"resources\\images\\"+productToBeAdded.getProductId() + ".png"));
} catch (Exception e) {
throw new RuntimeException("Product Image saving failed", e);
}
}
productService.addProduct(productToBeAdded);
return "redirect:/products";
}
spring project已正确设置,布线已完成
很少有注释和代码行是特定于我的项目的,可能并不完全相关
我正在尝试编写一个SpringMVC方法,它可以接收多部分/表单或传输编码的分块文件上传。我可以编写一个单独的方法来处理每种类型,但我希望使用相同的方法,以便使用相同的REST POST uri,例如: 以下是我迄今为止最好的尝试: 使用上述方法,我可以上传一个多部分文件,但如果我上传一个分块文件,我会从spring得到一个异常,它说: 如果我删除MultipartFile请求参数,它非常适合分块
我已经创建了一个使用“多部分/表单数据”的控制器 采样器请求对象 现在,我将尝试使用模拟MVC测试它,但我不知道如何将“多部分/表单数据”作为内容传递。我看到很多使用JSON的示例,但没有使用多部分/表单数据 有没有一种方法可以完成我的请求与多部分/form_data?理想情况下,它需要在MockHttpServletRequest的主体中
我需要实现一个RESTendpoint,它接收多部分/表单数据 我使用 -Spring Boot -Kotlin -Spring MVC 当我收到一个请求时,就会出现一个错误: 内容类型'multipart/form-data';boundary=----------------------------------------------------------------------------
问题内容: 我有一个带有方法的控制器方法,该方法接收multipart / form-data: 我想使用进行测试。不幸的是创建了一个具有方法的实例: 编辑: 当然,我 不能 创建自己的实现,例如 因为具有包本地构造函数。 但是我想知道是否还有其他更方便的 方法?可以这样做吗,可能是我错过了一些现有的类或方法吗? 问题答案: 是的,有一种方法,而且也很简单! 我自己也遇到了同样的问题。尽管我不满意
您好,我想向邮递员发送一个带有json的正文和一个formd数据中的图像。。。 我将表单数据图像保存在s3桶中,实体具有作为图像链接的字符串属性 这里是我的spring boot控制器 我已经用@RequestParam和@RequestPart尝试了多部分文件。。。我收到以下错误: "不支持内容类型'multipart/form-data;边界=-------------------------
我很难用PHP cURL发布到API。我觉得我已经尝试了每种组合。我的脚本正在连接,但问题在负载范围内。 这是根据文档所需的请求。 --85b890d4-4faf-4261-bcbb-187c4dddcbc6内容类型:application/vnd.emc。ax json;charset=utf-8内容配置:表单数据;名称=数据 --85b890d4-4faf-4261-bcb-187c4dddc