servlet实现下载
来源:互联网 发布:js获取json数组长度 编辑:程序博客网 时间:2024/06/16 16:53
本来之前写一个servlet文件下载的,会出现很多问题,英文下载可以,中文下载就出现了乱码或者没显示的情况;
经过优化,封装成了一个工具类,如果有更好的,还劳烦赐教。
测试代码文件结构:
package Tool;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.UnsupportedEncodingException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DownloadTool { /** * 直接可以利用本工具进行文件下载 * * @param request 传入servlet中的 * @param response 传入servlet中的 * @param dir WebRoot下面的目录,如果是WebRoot/download只需要写 download * @param fileName 文件的名字请包含后缀名 */ public static void down(HttpServletRequest request, HttpServletResponse response, String dir, String fileName) { // 发送头文件,告诉浏览器调用下载功能 try { response.setHeader("Content-Disposition", "attachment;filename="+ new String(fileName.getBytes("utf-8"),"ISO-8859-1")); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } // 获取绝对路径 String path = "/" + dir + "/" + fileName; String realPath = request.getSession().getServletContext() .getRealPath(path); System.out.println("realPath:"+realPath); File file = new File(realPath); if (file.exists()) {//文件存在才开始下载 try { FileInputStream fis = new FileInputStream(file); ServletOutputStream sos = response.getOutputStream(); byte[] buff = new byte[1024]; int len = 0; while ((len = fis.read(buff)) != -1) { sos.write(buff, 0, len); } // 关闭io流 sos.close(); fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }}
1 0
- [Servlet] 实现文件下载
- 用Servlet实现下载
- Servlet实现下载
- Servlet实现文件下载
- servlet实现文件下载
- 用Servlet实现下载
- 用Servlet实现下载
- Servlet实现文件下载
- Servlet实现文件下载
- 用Servlet实现下载
- servlet实现文件下载
- Servlet实现文件下载
- Servlet 实现下载功能
- servlet 实现文件下载
- servlet实现下载
- Servlet实现文件下载
- Servlet实现文件下载
- Servlet实现下载功能
- 使用阿里云的ip地址查询服务-购买ip地址查询服务
- react native生命周期学习总结
- redis set类型和zset类型
- golang定时器
- 记录几种软键盘的使用场景定义
- servlet实现下载
- 安装caffe
- 第二行代码第五章笔记
- 频繁调用方法会出现下标越界
- javascript学习之 正则表达式 (24)——字符匹配
- (4.1.47)PreferenceFragment详解
- GameSaveLoadScript
- (2)版本控制工具之TortoiseSVN使用
- ASP.Net: EshineASPNet教程-商店门店地图展示