java实现文件上传下载

  

本文实例为大家分享了java实现文件上传下载的具体代码,供大家参考,具体内容如下
  

  

<强>一。上传

  

1。前端:

        & lt;形式方法=皃ost”action="类" enctype=岸嗖糠?格式”比;   & lt;输入类型="文件" name="还是"/比;   & lt; br/比;   & lt;输入类型="提交" value=" https://www.yisu.com/zixun/上传”/比;   & lt;/form>      

2。后台:

        进口java.io.File;   进口java.io.IOException;   进口java.io.PrintWriter;   进口并不知道;   进口javax.servlet.ServletException;   进口javax.servlet.annotation.WebServlet;   进口javax.servlet.http.HttpServlet;   进口javax.servlet.http.HttpServletRequest;   进口javax.servlet.http.HttpServletResponse;   进口org.apache.commons.fileupload.FileItem;   进口org.apache.commons.fileupload.disk.DiskFileItemFactory;   进口org.apache.commons.fileupload.servlet.ServletFileUpload;   进口dao.FileDao;         @WebServlet ("/FileUpload”)   公开课FileUpload扩展HttpServlet {   私有静态最终长serialVersionUID l=1;//上传配置   私有静态最终int MEMORY_THRESHOLD=1024 * 1024 * 3;//3 mb   私有静态最终int MAX_FILE_SIZE=1024 * 1024 * 40;//40 mb   私有静态最终int MAX_REQUEST_SIZE=1024 * 1024 * 50;//50 mb      公共类(){   超级();   }      保护无效doGet (HttpServletRequest请求,HttpServletResponse响应)抛出ServletException IOException {      request.setCharacterEncoding (“utf - 8”);   response.setCharacterEncoding(“utf - 8”);   response.setContentType (“text/html; charset=utf - 8”);   PrintWriter=response.getWriter ();      如果(! ServletFileUpload.isMultipartContent(请求)){//如果不是则停止   出去了。println(“错误:表单必须包含enctype=多部分/格式”);   out.flush ();   返回;   }//配置上传参数   DiskFileItemFactory工厂=new DiskFileItemFactory ();//设置内存临界值,超过后将产生临时文件并存储于临时目录中   factory.setSizeThreshold (MEMORY_THRESHOLD);//设置临时存储目录   工厂。setRepository(新文件(System.getProperty (“java.io.tmpdir”)));      ServletFileUpload上传=new ServletFileUpload(工厂);//设置最大文件上传值   upload.setFileSizeMax (MAX_FILE_SIZE);//设置最大请求值(包含文件和表单数据)   upload.setSizeMax (MAX_REQUEST_SIZE);//中文处理   upload.setHeaderEncoding (“utf - 8”);         字符串uploadPath=request.getServletContext () .getRealPath(“/文件”);   文件uploadDir=新文件(uploadPath);   如果(! uploadDir.exists ()) {   uploadDir.mkdir ();   }      尝试{//解析请求的内容提取文件数据   ListformItems=upload.parseRequest(请求);   如果(formItems !=零,,formItems.size()比;0){//迭代表单数据   (FileItem项目:formItems) {//处理不在表单中的字段   如果(! item.isFormField ()) {   字符串文件名=新文件(item.getName ()) . getname ();   字符串filePath=uploadPath +文件。分离器+文件名;   文件storeFile=新文件(filePath);//在控制台输出文件的上传路径//System.out.println (filePath);//保存文件到硬盘   如果(storeFile.exists ()) {   out.println(“上传失败,文件已存在!”);   其他}{   item.write (storeFile);   out.println(“文件上传成功!”);   }   }   }   }   }捕捉(例外的前女友){   response.getWriter () .println(“文件上传成功!”);   }   }         保护无效doPost (HttpServletRequest请求,HttpServletResponse响应)抛出ServletException IOException {   doGet(请求、响应);   }   }   之前      

<强>二。下载

  

1。下载链接:

  

FileDownload& # 63;文件名=" + URLEncoder.encode(文件名,“utf - 8”) - - - - - - - - - -需要对URL中的中文参数进行编码,否则会出现乱码

  

2。后台:

        进口java.io.File;   进口java.io.FileInputStream;   进口java.io.IOException;   进口java.io.PrintWriter;   进口java.net.URLEncoder;   进口javax.servlet.ServletException;   进口javax.servlet.annotation.WebServlet;   进口javax.servlet.http.HttpServlet;   进口javax.servlet.http.HttpServletRequest;   进口javax.servlet.http.HttpServletResponse;         @WebServlet ("/FileDownload”)   公开课FileDownload扩展HttpServlet {   私有静态最终长serialVersionUID l=1;      公共FileDownload () {   超级();   }      保护无效doGet (HttpServletRequest请求,HttpServletResponse响应)抛出ServletException IOException {      request.setCharacterEncoding (“utf - 8”);   response.setCharacterEncoding(“utf - 8”);   PrintWriter=response.getWriter ();      字符串dirPath=request.getServletContext () .getRealPath(“/文件”);   字符串文件名=URLEncoder.encode (request.getParameter(“文件名”)、“utf - 8”);//需要对URL中的中文参数进行编码,否则出现乱码   response.getWriter () .println(文件名);   字符串filepath=dirPath +文件。分离器+文件名;   response.setContentType(“应用程序/八进制”);   响应。setHeader(“附加”、“依恋;文件名=\ " +文件名+ " \ ");      FileInputStream FileInputStream=new FileInputStream (filepath);   int i=0;   在((i=fileInputStream.read ()) !=1) {   out.write(我);   }   fileInputStream.close ();   out.close ();   }      保护无效doPost (HttpServletRequest请求,HttpServletResponse响应)抛出ServletException IOException {   doGet(请求、响应);   }   }   

java实现文件上传下载