码迷,mamicode.com
首页 > 编程语言 > 详细

java文件上传下载

时间:2016-05-18 06:58:09      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:java 文件 上传 下载

采用springmvc架构,只贴出关键代码,其他一概论之。

上传:

jsp页面

<form  action="${pageContext.request.contextPath}/UploadHandleServlet"  method="post"  enctype="multipart/form-data">
   上传用户x:<input type="text" name="username"><br/>
         上传文件1:<input type="file" name="file1"><br/>
       <input type="submit" value="提交">
  </form>


后台代码

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMddHHmmss");
String savePath =request.getSession().getServletContext().getRealPath("/WEB-INF/upload");
 File file = new File(savePath);
 if (!file.exists()) {
	 file.mkdir();
 }
 String message ="";
 try{
	  DiskFileItemFactory factory = new DiskFileItemFactory();
	  factory.setSizeThreshold(1024*100); 
	  factory.setRepository(file);
	  
	  ServletFileUpload upload = new ServletFileUpload(factory);
	  upload.setHeaderEncoding("UTF-8"); 
 List<FileItem> list = upload.parseRequest(request);
 
//正则匹配,过滤路径取文件名  
 String regExp = ".+\\\\(.+)$"; 
 Pattern p = Pattern.compile(regExp);
 
 String fileName="";
 for(FileItem item : list){
	 if(item.isFormField()){
		 String name = item.getFieldName();
         String value = item.getString("UTF-8");
         System.out.println(name + "=" + value);
	 }else{
		 String name = item.getName(); 
		 name = name.substring(name.lastIndexOf("\\")+1);
		  fileName = savePath+"/"+ sdf1.format(new Date()) + "_"+name;  
		 item.write(new File(fileName)); 
	 }
	
 }
  message = "文件上传成功!";
 }catch (Exception e) {
	 message= "文件上传失败!";
     e.printStackTrace();
}



文件下载

//获得文件名和文件路径
String name = map.get("name")+"";
String path = map.get("path")+"";

String filename= new String(name.getBytes("utf-8"),"iso8859-1");

File file = new File(path);
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
response.reset();
response.addHeader("Content-Disposition", "attachment;filename=" + new String(name.replaceAll(" ", "").getBytes("utf-8"),"iso8859-1"));
response.addHeader("Content-Length", "" + file.length());
OutputStream os = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
os.write(buffer);// 输出文件
os.flush();
os.close();

本文出自 “bulajunjun” 博客,请务必保留此出处http://5148737.blog.51cto.com/5138737/1774535

java文件上传下载

标签:java 文件 上传 下载

原文地址:http://5148737.blog.51cto.com/5138737/1774535

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!