前提条件:
坐标引入:
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
编写handler:
@RequestMapping("testUploadFile")
public String testUploadFile(MultipartFile uploadFile, HttpServletRequest request) throws IOException {
// 文件原名,如xxx.jpg
String originalFilename = uploadFile.getOriginalFilename();
// 获取文件的扩展名,如jpg
String extendName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1, originalFilename.length());
String uuid = UUID.randomUUID().toString();
// 新的文件名字
String newName = uuid + "." + extendName;
String realPath = request.getSession().getServletContext().getRealPath("/uploads");
// 解决文件夹存放文件数量限制,按日期存放
String datePath = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
File floder = new File(realPath + "/" + datePath);
if(!floder.exists()) {
floder.mkdirs();
}
uploadFile.transferTo(new File(floder,newName));
return "success";
}
<!-- id的值是固定的-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--设置上传文件最大5M-->
<property name="maxUploadSize" value="5242880"/>
</bean>
服务器上传:
在文件服务器的tomcat配置中加入,允许读写操作:
jar坐标引入:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.18.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.18.1</version>
</dependency>
handler:
@RequestMapping("testUploadFileRemote")
public String testUploadFileRemote(MultipartFile uploadFile, HttpServletRequest request) throws IOException {
// 文件原名,如xxx.jpg
String originalFilename = uploadFile.getOriginalFilename();
// 获取文件的扩展名,如jpg
String extendName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1, originalFilename.length());
String uuid = UUID.randomUUID().toString();
// 新的文件名字
String newName = uuid + "." + extendName;
String realPath = request.getSession().getServletContext().getRealPath("/uploads");
// 解决文件夹存放文件数量限制,按日期存放
String datePath = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
File floder = new File(realPath + "/" + datePath);
if(!floder.exists()) {
floder.mkdirs();
}
Client client = Client.create();
String baseUrl = "http://localhost:8081/fileserver/uploads/";
WebResource webResource = client.resource(baseUrl+newName);
String result = webResource.put(String.class,uploadFile.getBytes());
System.out.println(result);
return "success";
}