zshengxian的gravatar头像
zshengxian 2014-10-07 21:20:18

SpringMVC中上传文件MultipartFile对象调用Inputstream方法失败问题

//静态list

public static List<MultipartFile>  list = new ArrayList<MultipartFile>();

//把用户上传的multipartFile对象塞入list

list.add(multipartFile );

//遍历获得并调用getInputStream方法
for(MultipartFile file:list){
			try {
//这一步不跳入异常也不继续往下走
				System.out.println(file.getInputStream());
//。。。。。。这里还有代码,但是不走,直接for循环下一个对象
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

在springMVC中我把用户上传文件的MultipartFile对象放入list(静态变量 public static的)中,
然后定时从list中取出对象,在没放入list中的时候调用对象的getInputStream方法没有问题,但是放到list中后定时遍历出MultipartFile对象,调用它的getInputStream时不往下走也不抛出io异常,这个是什么原因?求教

所有回答列表(1)
最代码官方的gravatar头像
最代码官方  LV168 2014年10月8日

只是把MultipartFile对象放到list中是无法获取用户本地文件流的。你得把文件流存储到服务器内存或者服务器磁盘,或者服务器db数据库中再去读取就ok了。

比如通过apache common的FileUtil实现保存的临时文件:

InputStream inputStream;
try {
    inputStream = multipartFile.getInputStream();
    String name = multipartFile.getOriginalFilename();
    File tmpFile = File.createTempFile(name, ".tmp");
    FileUtils.copyInputStreamToFile(inputStream, tmpFile);
    tmpFile.delete();
} catch (IOException e) {
    e.printStackTrace();
}
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友