2 qq 1187001749 qq_1187001749 于 2016.03.18 10:26 提问

spring mvc 上传图片问题

后台:
@RequestMapping(method = RequestMethod.POST,params="picture")
public @ResponseBody String updateLoad(@RequestParam(value = "file") MultipartFile file) {
String filePath = request.getSession().getServletContext().getRealPath("/") + java.io.File.separator + AppConstants.PICTURE_PLACE;

    String name = FileUtil.saveFile(file, filePath);
    return name;
}

前台:

  <form id="imageUploadForm"  action='coupon?picture' method="post" enctype='multipart/form-data'>
                                <input type="file" name="file" class="default" />
                                <input type="submit" value="upload" />
            </form>    

报错:Required MultipartFile parameter 'file' is not present,怎么改能不报错,并且传过来的file 不为null

4个回答

u011489205
u011489205   2016.03.18 14:49
已采纳

图片说明
图片说明
图片说明

abcdefg3221
abcdefg3221   2016.03.18 10:54

你表单的action后面的问号什么意思啊

u011489205
u011489205   2016.03.18 10:59

 public @ResponseBody String updateLoad(@RequestParam(value = "file") MultipartFile file)

改为

 public @ResponseBody String updateLoad(@RequestParam MultipartFile file)
u011489205
u011489205 回复qq_1187001749: 我亲自试了下是可以的,没什么不可以,如果还是不行的话,是不是拦截器或者有另外一个方法,有同样的params="picture"
一年多之前 回复
qq_1187001749
qq_1187001749 一样的问题,获取的file 为null
一年多之前 回复
u014369169
u014369169   2016.03.18 17:54

MultipartFile 需要转为File类型的啊,给段代码你参考哈
@Controller

public class UploadAction {

@RequestMapping(value = "/upload.do")  
public String upload(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, ModelMap model) {  

    System.out.println("开始");  
    String path = request.getSession().getServletContext().getRealPath("upload");  
    String fileName = file.getOriginalFilename();  

// String fileName = new Date().getTime()+".jpg";

System.out.println(path);

File targetFile = new File(path, fileName);

if(!targetFile.exists()){

targetFile.mkdirs();

}

    //保存  
    try {  
        file.transferTo(targetFile);  
    } catch (Exception e) {  
        e.printStackTrace();  
    }  
    model.addAttribute("fileUrl", request.getContextPath()+"/upload/"+fileName);  

    return "result";  
}  

}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!