文章目录
1.SpringMVC跨域文件上传
首先来看一下解决方案的步骤:
- tomcat配置允许tomcat写操作
- maven中导入
jersey-core
,jersey-client
的依赖 - SpringMVC中配置文件上传的解析器
CommonsMutipartResolver
- controller中的核心代码
Client
,WebResource
1.tomcat配置允许tomcat写操作
在tomcat->conf->web.xml中如下配置
<!--设置可写状态-->
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
2.maven中导入jersey-core
,jersey-client
的依赖
<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-core -->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.19.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-core -->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.19.4</version>
</dependency>
3.SpringMVC配置文件中配置上传的解析器CommonsMutipartResolver
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<property name="maxUploadSize" value="1048560"/>
</bean>
4.controller中的核心代码Client
,WebResource
@RequestMapping("/fileUpload3")
public String uploads3(MultipartFile file) throws IOException {
String filename = "http://localhost:8081/uploadServer/uploads/";
filename = filename + "1234.png";
Client client = Client.create();
WebResource wr = client.resource(filename);
wr.put(file.getBytes());
return "uoloadSucess";
}
注意: Multipart file的参数名要和前端上传表单一致。
http://localhost:8081/uploadServer/uploads/为新创建的工程为了当做文件服务器,uploads为我们在这个工程webapp下创建的文件夹,用于存放上传文件地址。创建文件夹的时候记得要随便创建一个文件,不然部署的时候,tomcat不会为我们部署空的文件夹。