文档详情

Servlet实现文件下载源代码.doc

发布:2017-04-22约2.22千字共2页下载文档
文本预览下载声明
Servlet实现文件下载源代码 一、如何使用 如果此Servlet命名为download,请求的URL为:/download?path=xxx,请求后出现下载窗口: ?二、源码 import??java.io.BufferedInputStream; import??java.io.BufferedOutputStream; import??java.io.File; import??java.io.FileInputStream; import??java.io.IOException; import??javax.servlet.ServletException; import??javax.servlet.ServletOutputStream; import??javax.servlet.http.HttpServlet; import??javax.servlet.http.HttpServletRequest; import??javax.servlet.http.HttpServletResponse; public???class??FileDownload??extends??HttpServlet?{ ???protected???void??service(HttpServletRequest?req,?HttpServletResponse?res) ???????throws??ServletException,?IOException?{ ?????//??服务器相对路径 ????String?path??=??req.getParameter(??path??); ?????//??服务器绝对路径 ????path??=??getServletContext().getRealPath(??/??)??+??path; ?????//??检查文件是否存在 ????File?obj??=???new??File(path); ?????if??(?!?obj.exists())?{ ??????res.setContentType(??text/html;charset=GBK??); ??????res.getWriter().print(??指定文件不存在!??); ???????return?; ????} ?????//??读取文件名:用于设置客户端保存时指定默认文件名 ?????int??index??=??path.lastIndexOf(??\\??);?//??前提:传入的path字符串以“\”表示目录分隔符 ????String?fileName??=??path.substring(index??+???1?); ?????//??写流文件到前端浏览器 ????ServletOutputStream?out??=??res.getOutputStream(); ????res.setHeader(??Content-disposition??,???attachment;filename=????+??fileName); ????BufferedInputStream?bis??=???null?; ????BufferedOutputStream?bos??=???null?; ?????try??{ ??????bis??=???new??BufferedInputStream(?new??FileInputStream(path)); ??????bos??=???new??BufferedOutputStream(out); ???????byte?[]?buff??=???new???byte?[?2048?]; ???????int??bytesRead; ???????while??(?-?1???!=??(bytesRead??=??bis.read(buff,??0?,?buff.length)))?{ ????????bos.write(buff,??0?,?bytesRead); ??????} ????}??catch??(IOException?e)?{ ???????throw??e; ????}??finally??{ ???????if??(bis??!=???null?) ????????bis.close(); ???????if??(bos??!=???null?) ????????bos.close(); ????} ??} } 三、web.xml配置 ?servlet? ??????servlet-name??FileDownload?/?servlet-name? ??????servlet-class??com.fastunit
显示全部
相似文档