zoukankan      html  css  js  c++  java
  • javaWeb之文件下载

    //本次的文件下载是接着上次文件上传的

    //为方便实现文件下载,可借助第三方开源jar包:commons.io;

    //因为下载时候与浏览器类型有一定关系,可能会出现一些小偏差

    //客户端代码:<a href="<c:url value='/DownloadServlet'/>">点击下载</a>

    //以下为服务端代码:

    package cn.hl.download;

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.net.URLEncoder;
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.commons.io.IOUtils;

    public class DownloadServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    request.setCharacterEncoding("utf-8");
    response.setContentType("text/html;charset=utf-8");
    /*
    * 请求头设置与下载流
    * 1. Content-Type
    * 2. Content-Disposition
    * 3. 下载流:下载文件
    */
    String filename="D:/Finally Found Ya.mp3";//楼主的例子为D盘下的一首mp3(要下载的内容)

    String framename = new String("Finally Found Ya.mp3".getBytes("GBK"), "utf-8");//设置编码格式

    String contentType=this.getServletContext().getMimeType(filename);//通过文件名称获取MIME类型
    String contentDisposition ="attachment;filename="+framename;//激活文件下载框
    FileInputStream in=new FileInputStream(filename);

    response.setHeader("Content-Type", contentType);
    response.setHeader("Content-Disposition", contentDisposition);

    ServletOutputStream out=response.getOutputStream();
    IOUtils.copy(in, out);
    in.close();
    }

  • 相关阅读:
    编译Linux 2.6内核
    C语言学习参考(基础&进阶)
    用户体验为什么如此重要
    北京讲座:软件企业常见问题和系统性解决方法(7月5日)
    《JavaScript权威指南(第6版)》诚征广大读者参与初译稿审校活动!
    有关正则表达式的研究
    关于分页的研究
    四舍五入等一些不常用代码整理
    最简单CSS实现Table细线表格
    vs2005 SP1补丁安装慢
  • 原文地址:https://www.cnblogs.com/fcbmers/p/5425077.html
Copyright © 2011-2022 走看看