博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

最近项目中用到了文件上传,给大家分享一下

Posted on 2016-12-21 11:31  小秦秦  阅读(820)  评论(3)    收藏  举报

前台可以传递多个文件,使用h5的新特性,<input type="file" name="fromdata" multiple/>就可以上传多个文件

@RequestMapping("/upload")
@ResponseBody
public String upload(@RequestParam(value="fromdata",required=false)MultipartFile[] fromdata,HttpServletRequest request,HttpServletResponse response) throws IOException{
/**
* 使用字节流的方式进行上传文件 两者都可用,根据选择进行使用
*/
/*System.out.println(new Date());
for (MultipartFile file : fromdata) {
//获得输入流 的文件
InputStream is=file.getInputStream();
//获得文件的存储路径  我这里把路径定义了一下,你们可以自己定义
String path="D:/fileupload/"+file.getOriginalFilename();
OutputStream os=new FileOutputStream(path);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = is.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
is.close();
}
System.out.println(new Date());*/
/**
* 使用拷贝的方法  这个是另外一个方法
*/
System.out.println(new Date());
for (MultipartFile file : fromdata) {
//获得输入流 的文件
//InputStream is=file.getInputStream();
//获得文件的存储路径
String path="D:/fileupload/"+file.getOriginalFilename();

BufferedInputStream in = new BufferedInputStream(file.getInputStream());

BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(new File(path)));// 获得文件输出流
Streams.copy(in, out, true);// 开始把文件写到指定的上传文件夹
in.close();
out.close();
}
System.out.println(new Date());

return "1";
}