SpringMVC - 图片上传

SpringMVC传统方式文件上传

SpringMVC框架提供了MultipartFile对象,该对象表示上传的文件,要求变量名称必须和表单file标签的 name属性名称相同

导入文件上传的jar包

 <dependency>            
 	<groupId>commons-fileupload</groupId>            
 	<artifactId>commons-fileupload</artifactId>            
 	<version>1.3.1</version>        
 </dependency>        
 <dependency>            
 	<groupId>commons-io</groupId>            
 	<artifactId>commons-io</artifactId>            
 	<version>2.4</version>        
 </dependency>

编写文件上传的JSP页面

<h3>文件上传</h3>        
<form action="user/fileupload" method="post" enctype="multipart/form-data">        
	选择文件:<input type="file" name="upload"/><br/>        
	<input type="submit" value="上传文件"/>    
</form>

这里要注意

  • form的属性必须是multipart/form-data,会把表单分成几个部分,存储不同的值

  • 必须使用post,因为使用get会把参数写在地址栏,地址栏的大小是有限制的

  • 要提供一个选择文件的文本框

后端代码

 /**     
 * SpringMVC方式的文件上传     
 *       
 * @param request     
 * @return     
 * @throws Exception     
 */    
 @RequestMapping(value="/fileupload2")    
 public String fileupload2(HttpServletRequest request,MultipartFile upload) throws Exception {        
 	System.out.println("SpringMVC方式的文件上传...");        
 	// 先获取到要上传的文件目录        
 	String path = request.getSession().getServletContext().getRealPath("/uploads");        
 	// 创建File对象,一会向该路径下上传文件        
 	File file = new File(path);        
 	// 判断路径是否存在,如果不存在,创建该路径        
 	if(!file.exists()) {            
 		file.mkdirs();        
 	}        
 	// 获取到上传文件的名称        
 	String filename = upload.getOriginalFilename();        
 	String uuid = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();        
 	// 把文件的名称唯一化        
 	filename = uuid+"_"+filename;        
 	// 上传文件        
 	upload.transferTo(new File(file,filename));        
 	return "success";    
 }

配置文件解析器对象

<!-- 配置文件解析器对象,要求id名称必须是multipartResolver -->    
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">        
	<property name="maxUploadSize" value="10485760"/>    
</bean>
发布了167 篇原创文章 · 获赞 3 · 访问量 5410

猜你喜欢

转载自blog.csdn.net/weixin_43907800/article/details/104858273