Servlet实现文件下载源代码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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.test.FileDownload </ servlet-class > </ servlet > < servlet-mapping > < servlet-name > FileDownload </ servlet-name > < url-pattern > /download </ url-pattern > </ servlet-mapping >
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);