博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web 简单文件下载
阅读量:4696 次
发布时间:2019-06-09

本文共 1026 字,大约阅读时间需要 3 分钟。

  最近开始做第一个项目,在做文件下载的方面遇到了一点问题,现在在这里分享一下。

  对于文件下载,我一开始的做法是读取了数据库中的需要下载的文件的相对于工程的相对路径后赋值给html代码的a标签的href属性,但是在测试的时候发现像txt、docx这类文本文档并不是提示下载,而是将相应的文件直接打开了,而由于编码的不同,就出现了满屏乱码这种情况,后来了解到是浏览器对这类简单的文件,它本身能够解析的文件类型都会直接打开显示,只有那些浏览器无法识别解析的文件类型才会提示用户下载,后来我的解决方法是写了一个下载的servlet类,代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        PrintWriter out;        //接收参数,path表示当前文件相对项目根目录的相对路径        String path = request.getParameter("path");        //获取文件的绝对路径        String filepath = request.getSession().getServletContext().getRealPath(path);        File file = new File(filepath);        //判断该文件是否存在        if(!file.exists()) {
out = response.getWriter(); out.println(""); out.close();return; } response.addHeader("content-disposition", "attachment;filename=" + path); IOUtils.copy(new FileInputStream(file), response.getOutputStream()); }

 

转载于:https://www.cnblogs.com/Lin-Even/p/6385968.html

你可能感兴趣的文章
DDR工作原理(转)
查看>>
(Frontend Newbie) Web三要素(一)
查看>>
(转载-学习)python wsgi 简介
查看>>
QPushButton 控制两种状态
查看>>
一点小基础
查看>>
PHP 自动加载类 __autoload() 方法
查看>>
JDK中的Timer和TimerTask详解(zhuan)
查看>>
【python练习】ATM&购物商城程序
查看>>
nginx 日志问题(\x22)
查看>>
装饰器、迭代器、生成器
查看>>
类对象作为类成员
查看>>
面向对象和面向过程的区别及优劣对比详解
查看>>
const与指针
查看>>
thsi指针的一些用法及作用
查看>>
c++友元
查看>>
c++运算符重载
查看>>
一元运算符重载
查看>>
Windows 远程栈溢出挖掘
查看>>
(网页)the server responded with a status of 403 (Forbidden)
查看>>
葡萄城报表介绍:Java 报表
查看>>