• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    jsp+servlet实现文件上传与下载功能

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

    上传:

    需要导入两个包:commons-fileupload-1.2.1.jar,commons-io-1.4.jar

    import java.io.File;
    import java.io.IOException;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    /**
     * 上传附件
     * @author new
     *
     */
    public class UploadAnnexServlet extends HttpServlet {
    
     private static String path = "";
    
     public void doGet(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
    
     doPost(request, response);
     }
    
     /*
     * post处理
     * (non-Javadoc)
     * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
     */
     public void doPost(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
    
     path = this.getServletContext().getRealPath("/upload");
    
     try {
     DiskFileItemFactory factory = new DiskFileItemFactory();
     ServletFileUpload up = new ServletFileUpload(factory);
     ListFileItem> ls = up.parseRequest(request);
    
     for (FileItem fileItem : ls) {
     if (fileItem.isFormField()) {
      String FieldName = fileItem.getFieldName();
      //getName()返回的是文件名字 普通域没有文件 返回NULL
      //     String Name = fileItem.getName();
      String Content = fileItem.getString("gbk");
      request.setAttribute(FieldName, Content);
     } else {
     
      String nm = fileItem.getName().substring(
      fileItem.getName().lastIndexOf("\\") + 1);
      File mkr = new File(path, nm);
      if (mkr.createNewFile()) {
      fileItem.write(mkr);//非常方便的方法
      }
      request.setAttribute("result", "上传文件成功!");
     }
     }
     } catch (Exception e) {
     e.printStackTrace();
     request.setAttribute("result", "上传失败,请查找原因,重新再试!");
     }
     request.getRequestDispatcher("/pages/admin/annex-manager.jsp").forward(
     request, response);
     }
    
    }
    

    下载(i/o流)无需导包:

    import java.io.IOException;
    import java.net.URLEncoder;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * 下载文件
     * @author
     *
     */
    public class DownloadFilesServlet extends HttpServlet {
    
     /**
     * 
     */
     private static final long serialVersionUID = 8594448765428224944L;
    
     public void doGet(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
    
     doPost(request, response);
     }
    
     /*
     * 处理请求
     * (non-Javadoc)
     * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
     */
     public void doPost(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
    
     String name = request.getParameter("fileName");
    
     System.out.print("dddddddddd:" + name);
     // web绝对路径
     String path = request.getSession().getServletContext().getRealPath("/");
     String savePath = path + "upload";
    
     // 设置为下载application/x-download
     response.setContentType("application/x-download");
     // 即将下载的文件在服务器上的绝对路径
     String filenamedownload = savePath + "/" + name;
     // 下载文件时显示的文件保存名称
     String filenamedisplay = name;
     // 中文编码转换
     filenamedisplay = URLEncoder.encode(filenamedisplay, "UTF-8");
     response.addHeader("Content-Disposition", "attachment;filename="
     + filenamedisplay);
     try {
     java.io.OutputStream os = response.getOutputStream();
     java.io.FileInputStream fis = new java.io.FileInputStream(
      filenamedownload);
     byte[] b = new byte[1024];
     int i = 0;
     while ((i = fis.read(b)) > 0) {
     os.write(b, 0, i);
     }
     fis.close();
     os.flush();
     os.close();
     } catch (Exception e) {
    
     }
    
     }
    
    }
    
    

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Jsp+Servlet实现文件上传下载 删除上传文件(三)
    • Jsp+Servlet实现文件上传下载 文件列表展示(二)
    • Jsp+Servlet实现文件上传下载 文件上传(一)
    • JSP servlet实现文件上传下载和删除
    • servlet+JSP+mysql实现文件上传的方法
    • JSP+Servlet实现文件上传到服务器功能
    上一篇:jsp 使用request为页面添加静态数据的实例
    下一篇:JSP servlet实现文件上传下载和删除
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    jsp+servlet实现文件上传与下载功能 jsp+servlet,实现,文件,上传,