SpringMVC_6_文件上传
1.文件上传的必要前提
1)form表单的enctype取值必须是多段
2)method必须是post
3)提供一个文件选择域 <input type="file">
2.SpringMVC上传文件
原理图:

流程:
S1 在springmvc.xml中开启配置文件解析器:
<!--配置文件解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--<property name="maxInMemorySize" value="1000000000"/><!–以字节为单位–>
<property name="maxUploadSize" value="1024"/>-->
</bean>
S2 在.jsp文件中新建一个表单项:
<form action="user/fileUpload2" method="post" enctype="multipart/form-data"> <input type="file" name="upload"/><br/> <input type="submit" value="文件上传"> </form>
S3 编写处理器:
/** * SpringMVC上传文件,MultipartFile参数名一定要与form表单中input的name相同 * @return * @throws Exception */ @RequestMapping("/fileUpload2") public String fileUpload2(HttpServletRequest request, MultipartFile upload) throws Exception { System.out.println("SpringMVC文件上传"); String path = "G:"+ File.separator+"电脑主题"+File.separator; //获得上传文件的名称 System.out.println(upload); String originalFilename = upload.getOriginalFilename(); System.out.println(originalFilename); //完成文件上传 upload.transferTo(new File(path,originalFilename)); return "success"; }
3.SpringMVC跨服务器方式的文件上传
1)分服务器的目的
在实际开发中会有很多处理不同功能的服务器。例如:
应用服务器:负责部署应用
数据库服务器:负责运行数据库
缓存和消息服务器:负责处理大并发访问的缓存和消息
文件服务器:负责存储用户上传的文件
2)处理器的编写:
/** * 跨服务器文件上传 * @param upload * @return * @throws Exception */ @RequestMapping("/fileUpload3") public String fileUpload3(MultipartFile upload) throws Exception { System.out.println("SpringMVC跨服务器文件上传"); String originalFilename = upload.getOriginalFilename(); //定义上传文件的路径 String path = "http://localhost:8082/springmvcDepo/uploads/"; //创建客户端对象 Client client = Client.create(); //和图片服务器进行连接 WebResource webResource = client.resource(path + originalFilename); //上传文件 webResource.put(upload.getBytes()); return "success"; }

浙公网安备 33010602011771号