jsp:怎么实现点击下载按钮直接下载文件而不是在浏览器中直接打开

问题描述

jsp:怎么实现点击下载按钮直接下载文件而不是在浏览器中直接打开

点击按钮下载的时候会有一个弹出框,可以选择是打开还是下载,请大神们给出一个代码实例

解决方案

轻松下载.pdf文件(直接下载,而不是在IE浏览器里面打开)
直接让浏览器下载文件而不打开
直接让浏览器下载文件而不打开

解决方案二:

http://blog.csdn.net/arui_email/article/details/9041283

解决方案三:

//强制要求为下载,防止有些浏览器调用默认打开程序打开而不下载
response.setContentType("application/force-download");

    //获取文件
    File fileLoad = new File(path);
    //下载时文件显示的名字
    String fileDisplayName = null;

    try {
        if(displayFileName != null && (!"".equals(displayFileName))){
            fileDisplayName = URLEncoder.encode(displayFileName, "UTF-8");
        }else{
            fileDisplayName = fileLoad.getName();
        }
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    //设置下载时的文件名
    response.setHeader("Content-disposition", "attachment;filename="+fileDisplayName);
    //当下载文件名为中文等Unicode字符时,可能导致乱码,此时需要将文件名重新编码为UTF-8
    //采用ISO8859-1编码
    //response.setHeader("Content-disposition","attachment; filename="+new String(fileLoad.getName().getBytes("iso-8859-1"),"UTF-8"));
    //采用UTF-8编码
    //response.setHeader("Content-disposition","attachment; filename="+URLEncoder.encode(fileLoad.getName(), "UTF-8"));

    try {
        OutputStream ops = null;
        FileInputStream fis = null;

        long fileLength = fileLoad.length();
        String length = String.valueOf(fileLength);
        response.setHeader("Content_Length", length);

        ops = response.getOutputStream();
        fis = new FileInputStream(fileLoad);
        byte b[] = new byte[2048];
        int i = 0;
        while((i = fis.read(b))!= -1){
        ops.write(b, 0, i);
        }
        ops.flush();
        if(fis != null){
        fis.close();
        fis = null;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

解决方案四:

想问一下,download.jsp应该放在什么路径下

下载文件

时间: 2024-12-29 01:03:12

jsp:怎么实现点击下载按钮直接下载文件而不是在浏览器中直接打开的相关文章

默认点击下载pdf等文件而不是在浏览器中打开

浏览器|下载|浏览器|下载 <%Dim StreamDim ContentsDim FileNameDim FileExtConst adTypeBinary = 1FileName = Request.QueryString("FileName")if FileName = "" Then Response.Write "无效文件名." Response.EndEnd if' 下面是不希望下载的文件FileExt = Mid(FileNa

用jsp实现直接下载文件而不是在浏览器中打开的功能

js|浏览器|下载 <% // example: // <a href=http://www.163design.net/j/f/"download.jsp?path=img/&name=test.gif">download image</a> String root = getServletContext().getRealPath("/"); String path = request.getParameter("

vs2013mvc项目用ie不能调试了,点击登录按钮进入不了后台,其他浏览器可以

问题描述 以前都是用的ie调试的都很正常,就是突然就不正常了,程序发布了之后用ie也可以访问.其他浏览器都是正常的.客户那里只能用ie 解决方案 解决方案二:没有代码???解决方案三:一般来说应该是兼容性的问题.

TXT.WORD文档下载在本地,而不是在浏览器中打开

word|浏览器|下载 <%Response.Buffer=true取得要下载的文件,如果不为空.就下载dim url,trueurlurl="下载文件路径和下载文件名"   fname=Request("filename")   if fname<>"" then      trueurlurl=server.MapPath("/") &url   end if   set objFso=serve

硕鼠FLV视频下载器如何下载视频

  第一步:找到您需要下载的视频或专辑页面 比如,现在我们想下载<薛平贵与王宝钏>,可以访问 优酷网首页,输入"薛平贵与王宝钏",然后点击"搜库"按钮: 会跳到一个搜索页面,随便点一集视频的链接: 播放画面左上方的电视剧标题就是我们需要的专辑页面咯! 小贴士:这里是以优酷为例,其它视频网站找专辑页面的方法也都差不多,一般在播放画面左上方都能找到滴! 点击电视剧标题,打开专辑页面,把地址栏中的地址复制下来: 第二步:用FLVCD解析下载 访问 FLVCD首

微软Office 2016技术预览版已开放下载 任何人都可下载体验

  在1月底的发布会上,微软除了发布最新的Windows 10技术预览版之外,还带来了Office 2016.从之前曝光的截图来看,其风格相比目前的版本来说有了较大的改变,对于传统键盘鼠标操作和触摸操作的用户都进行了优化. 现在,Office 2016技术预览版终于开放下载了,不过步骤相对来说比较复杂. 首先,用户要在微软的"Connect注册"网页中报名参加,随后填写个人信息,包括姓名,国家地区,电子邮件地址等信息即可. 外媒报道称,无论你填写什么邮件地址,你都会自动加入进预览项目之

jsp转pdf-有一个JSP页面 点击页面上的下载 按钮 把JSP页面的内容转化为PDF格式下载到本地

问题描述 有一个JSP页面 点击页面上的下载 按钮 把JSP页面的内容转化为PDF格式下载到本地 有一个JSP页面 点击页面上的下载 按钮 把JSP页面的内容转化为PDF格式下载到本地 解决方案 http://bbs.csdn.net/topics/380175567?page=1http://www.iteye.com/problems/36679 解决方案二: http://bbs.csdn.net/topics/380175567?page=1 在你的Servlet里面写一下5楼说的代码(

jsp自动提交 或者说当用户访问这个jsp页面的时候不需要点击提交按钮就自动提交

问题描述 jsp自动提交 或者说当用户访问这个jsp页面的时候不需要点击提交按钮就自动提交 当转向此页面时,form自动提交. <form action="/OnlineBookStore20160504demo1/ServletForBook_user" id="form1" method="post"> </form> <script language="javascript"> for

java-浏览器通过URL访问Controller,是可以下载的,项目中点击按钮不能下载?

问题描述 浏览器通过URL访问Controller,是可以下载的,项目中点击按钮不能下载? 项目前端:Angular JS,Required JS,nginx代理服务器:后台Java,Spring MVC. 现在有一个下载问题:直接通过URL访问Controller,是可以下载的,并且弹出下载框,从项目里面点击按钮下载不弹出下载框,请问这是什么原因?一般不是只要设置了Content-Type,Header,就可以了吗? 解决方案 用fiddler看下,返回了什么错误,还是干脆没有触发下载. 解决