jsp文件下载功能实现代码

前端之家收集整理的这篇文章主要介绍了jsp文件下载功能实现代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例为大家分享了jsp实现文件下载功能的3种方法,供大家参考,具体内容如下

第一种、采用转发的方式:

  1. package cn.jbit.download.servlet;
  2. import java.io.IOException;
  3. import javax.servlet.RequestDispatcher;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. public class DownloadServlet extends HttpServlet {
  9. private static final long serialVersionUID = 6765085208899952414L;
  10. public void doGet(HttpServletRequest request,HttpServletResponse response)
  11. throws ServletException,IOException {
  12. doPost(request,response);
  13. }
  14. public void doPost(HttpServletRequest request,IOException {
  15. String filedownload = "/upload/1/10213.jpg";//即将下载的文件的相对路径
  16. String filedisplay = "10213.jpg";//下载文件显示文件保存名称
  17. response.setContentType("application/x-download");//设置为下载application/x-download
  18. //response.setContentType("application/x-msdownload");//设置为下载application/x-msdownload
  19. //response.setContentType("application/octet-stream");//设置为下载application/octet-stream
  20. response.addHeader("Content-Disposition","attachment;filename="
  21. + filedisplay);
  22. try {
  23. RequestDispatcher rd = request.getRequestDispatcher(filedownload);
  24. if(rd != null)
  25. {
  26. rd.forward(request,response);
  27. }
  28. response.flushBuffer();
  29. } catch (Exception e) {
  30. e.printStackTrace();
  31. }
  32. }
  33. }

二、通过输出流的方式:

  1. package cn.jbit.download.servlet;
  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.IOException;
  7. import java.io.InputStream;
  8. import java.io.OutputStream;
  9. import javax.servlet.ServletException;
  10. import javax.servlet.http.HttpServlet;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13. public class DownloadOfIOServlet extends HttpServlet {
  14. public void doGet(HttpServletRequest request,response);
  15. }
  16. public void doPost(HttpServletRequest request,IOException {
  17. String basePath = request.getSession().getServletContext().getRealPath("/upload");
  18. String filedisplay = "helloworld.jpg";
  19. String filedownload = basePath + File.separator + "helloworld.jpg";
  20. response.setContentType("applicaiton/x-download");
  21. response.addHeader("Content-Disposition","attachment;filename="+filedisplay);
  22. InputStream is = null;
  23. OutputStream os = null;
  24. BufferedInputStream bis = null;
  25. BufferedOutputStream bos = null;
  26. is = new FileInputStream(new File(filedownload));
  27. bis = new BufferedInputStream(is);
  28. os = response.getOutputStream();
  29. bos = new BufferedOutputStream(os);
  30. byte[] b = new byte[1024];
  31. int len = 0;
  32. while((len = bis.read(b)) != -1){
  33. bos.write(b,len);
  34. }
  35. bis.close();
  36. is.close();
  37. bos.close();
  38. os.close();
  39. }
  40. }
  41.  
  42.  

第三种、通过超链接的方式(注意不推荐,因为会暴露下载文件的位置)

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

猜你在找的Jsp相关文章