解决SpringMVC接收前台上传文件为null

这个问题的需求来源于,我前端传递图片后,需要在Controller中通过name映射进行获取,在获取的过程中出现了获取他的值为null的状况,发生这种状况的情形会有很多种,这边不一一列举,主要告诉大家如何正确获取。

1.前端界面

需要注意的是,因为这边会引用jquery.form.js,所以在form中一定要加入enctype="multipart/form-data"属性

* 品牌名称:
* 上传商品图片(90x150尺寸): 注:该尺寸图片必须为90x150。
品牌描述:
排序:
是否可用: 可用 不可用
 

2.jquery部分

需要引入jquery,以及jquery.form


3.开启SpringMVC文件上传功能

SpringMVC的文件上传功能默认是关闭的,所以需要开启

(1)首先需要引入相关的jar包

   
    commons-fileupload  
    commons-fileupload  
    1.3.1  
  

(2)其次需要在spring-mvc.xml中进行配置



	
		
	
    
    
    
    	
    	 
    
	
	
		
		
	

4.Controller的编写

这里pic名称需要与前端中file的名称要一致,且要配置@RequestParam(value="pic",required=false,楼主就是因为一开始没有配置value=“pic”,导致获取初始名称一直为null

@Controller
@RequestMapping(value="/upload")
public class UploadController {
	@RequestMapping(value="/uploadPic.do")
	//false表示不是必须传递该值
	public void uploadPic(@RequestParam(value="pic",required=false)MultipartFile pic){
		
		System.out.println(pic.getOriginalFilename());
	} 
}


你可能感兴趣的:(SSM)