zoukankan      html  css  js  c++  java
  • Web 简单文件下载

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

      对于文件下载,我一开始的做法是读取了数据库中的需要下载的文件的相对于工程的相对路径后赋值给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("<script>alert("文件不存在!");window.history.back()</script>");
                out.close();return;
            }
            response.addHeader("content-disposition", "attachment;filename=" + path);
            IOUtils.copy(new FileInputStream(file), response.getOutputStream());
        }
  • 相关阅读:
    HDU 3507 PrintArticle (单调队列优化)
    BZOJ 1911 (特别行动队)
    POJ 3709 K-Anonymous Sequence (单调队列优化)
    邓_php面试【002】——完整版
    邓_正则表达式
    邓_PHP面试2
    邓_PHP面试【001】
    网站大全
    Jquery 获取对象的几种方式介绍
    邓_Jquery测试题
  • 原文地址:https://www.cnblogs.com/Lin-Even/p/6385968.html
Copyright © 2011-2022 走看看