0 0

火狐浏览器下载的是页面5

//下载的方法如下
public void sendToClient() throws Exception {
File file = null;
try {
FacesContext facesContext = FacesContext.getCurrentInstance();
ServletContext servletContext = (ServletContext) facesContext
.getExternalContext().getContext();
String filePath = (String) servletContext.getRealPath("/")
+ "dataCollector/WorkDBDownload";

String fileName = "WorkDB.Assets";
file = new File(filePath + "/download" + "_" + currentOrgan.getId()
+ "/" + fileName);
HttpServletResponse response = (HttpServletResponse) facesContext
.getExternalContext().getResponse();
response.setContentType("application/x-msdownload");
String header = RequestParam.getRequest().getHeader("User-Agent");
if (header.indexOf("MSIE") > 0) {
response.setHeader("Content-disposition",
"attachment;filename=" + fileName);
} else {
StringBuffer contentDisposition = new StringBuffer();
response.setHeader(
"Content-disposition",
new String(contentDisposition.toString().getBytes(
System.getProperty("file.encoding")),
"iso8859_1"));
}
FileInputStream fin = new FileInputStream(file);
byte[] b = new byte[(int) file.length()];
fin.read(b);
ServletOutputStream sos = response.getOutputStream();
sos.write(b);
sos.flush();
sos.close();
// 需要呼叫Complete
facesContext.responseComplete();
fin.close();
} catch (Exception e) {
throw new Exception("下载导出文件错误!", e);
}

}

我的是jsf,需要下载WorkDB.Asset这个文件,这个文件要用sqlite数据库打开的那种, 名字和后缀固定死的,用ie好好的,用火狐下载就是download。jsf,但是修改成这个后缀名还能用里面的数据?求解,谢谢了!付数据库工具和下载错误的那个文件
2012年8月31日 15:49

4个答案 按时间排序 按投票排序

0 0

采纳的答案

if (header.indexOf("MSIE") > 0) {
response.setHeader("Content-disposition",
"attachment;filename=" + fileName);
} else {
原因========
貌似都要设置
response.setHeader("Content-disposition",
"attachment;filename=" + fileName);

2012年8月31日 15:59
0 0

我给你回复了啊
esponse.setHeader("Content-Disposition", "attachment;filename="
                    + new String((fileName).getBytes("gb2312"), "ISO8859-1"));

2012年8月31日 16:13
0 0

对,对于下载类型应该设置为:
  response.setContentType("application/x-download");

2012年8月31日 16:10
0 0

这是我之前写的  除了360浏览器好像有问题 其他浏览器均没问题  你试着改改吧

package cn.javass.ssonline.upload.web.servlet;

import cn.javass.ssonline.upload.util.UploadUtils;

import java.io.*;
import java.net.URLDecoder;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DownloadServlet extends HttpServlet
{
  protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException
  {
    doPost(req, resp);
  }

  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  {
    //只允许有一个参数 filename

    String filename = new String(req.getQueryString().getBytes("ISO-8859-1"), "UTF-8").substring(9);
    if ((filename == null) || (filename.trim().length() == 0) || (filename.contains("\\.\\."))) {
      resp.setContentType("text/html;charset=utf-8");
      resp.getWriter().write("您下载的文件不存在!");
      return;
    }
    download(req, resp, filename);
  }

  private void download(HttpServletRequest request, HttpServletResponse response, String filename)
  {
    String userAgent = request.getHeader("User-Agent");
    boolean isIE = (userAgent != null) && (userAgent.toLowerCase().indexOf("msie") != -1);
    try
    {
      filename = URLDecoder.decode(filename, "UTF-8");

      String filePath = UploadUtils.getUploadDir(request) + filename;

      File file = new File(filePath);
      if ((!(file.exists())) || (!(file.canRead()))) {
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().write("您下载的文件不存在!");
        return;
      }
      byte[] buf = new byte[1024];
      int len = 0;
      BufferedInputStream br = null;
      OutputStream ut = null;
      response.reset();

      response.setHeader("Pragma", "No-cache");
      response.setHeader("Cache-Control", "must-revalidate, no-transform");
      response.setDateHeader("Expires", 0L);

      String displayFilename = filename.substring(filename.lastIndexOf("_") + 1);
      displayFilename = displayFilename.replace(" ", "_");
      response.setContentType("application/x-download");

      displayFilename = "[私塾在线学习网]"+displayFilename;
      if (isIE) {
        displayFilename = URLEncoder.encode(displayFilename, "UTF-8");
        response.setHeader("Content-Disposition", "attachment;filename=\"" + displayFilename + "\"");
      } else {
        displayFilename = new String(displayFilename.getBytes("UTF-8"), "ISO8859-1");
        response.setHeader("Content-Disposition", "attachment;filename=" + displayFilename);
      }

      br = new BufferedInputStream(new FileInputStream(file));
      ut = response.getOutputStream();
      while ((len = br.read(buf)) != -1)
        ut.write(buf, 0, len);
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
}

2012年8月31日 16:03

相关推荐

    火狐浏览器45.0.2.rar

    火狐浏览器(Firefox)是由Mozilla基金会开发的开源网页浏览器,以其开放源代码、高度可定制性以及对隐私保护的重视而受到用户的喜爱。在45.0.2这个版本中,浏览器提供了稳定性和性能的改进,同时保持了与先前版本的...

    火狐浏览器不支持有道云笔记网页版

    火狐浏览器不支持有道云笔记网页版的知识点总结 火狐浏览器(Firefox)是一款流行的开源网页浏览器,由 Mozilla 基金会开发和维护。有道云笔记是一款在线笔记应用程序,提供网页版和客户端软件两种形式。然而,有些...

    火狐浏览器安装包,包含debug

    对于IT专业人士,尤其是前端开发者而言,火狐浏览器是一个不可或缺的工具,因为它提供了丰富的开发者工具,帮助他们有效地检测和修复网页前端的错误。 在标题中提到的"包含debug",意味着这个火狐浏览器安装包不仅...

    Firefox 火狐浏览器安装包

    快速高效:火狐浏览器采用了先进的渲染引擎和优化的加载算法,能够快速加载和渲染网页内容,提供流畅的浏览体验。 开源透明:作为开源项目,火狐浏览器的源代码对所有人都是开放的,任何人都可以查看、修改和分发,...

    火狐浏览器(汉文)火狐浏览器火狐浏览器火狐浏览器

    火狐浏览器,全称为Mozilla Firefox,是一款开源、免费的网页浏览器,由Mozilla基金会与社区共同开发。火狐浏览器以其安全、稳定、个性化和强大的可扩展性而受到全球用户的喜爱。这款浏览器采用Gecko渲染引擎,能够...

    52版本的火狐浏览器资源信息

    火狐浏览器,全名Mozilla Firefox,是一款开源且广受欢迎的网络浏览器,以其高效、安全和高度自定义的特点深受用户喜爱。52版本是火狐浏览器历史中的一个迭代,发布于2017年,它在当时引入了一系列重要的更新和改进...

    Windows XP32位系统适用火狐浏览器安装包

    在下载火狐浏览器的安装包时,用户需要先解压缩.zip文件,然后运行解压后的可执行文件进行安装。 3. **Firefox ESR(Extended Support Release)**:这是火狐浏览器的一个特殊分支,主要针对企业和教育机构,提供更...

    火狐浏览器渗透专版

    而“Mozilla Firefox”是火狐浏览器的可执行文件,是浏览器的核心部分,负责解析网页、处理用户交互等功能。 总的来说,火狐浏览器渗透专版是一款强大的安全测试工具,它的各种插件和技术为安全专业人员提供了全面...

    Firefox 火狐浏览器24.0下载安装

    《Firefox 火狐浏览器24.0:深入解析与安装指南》 Firefox 火狐浏览器是一款由Mozilla基金会开发的开源网络浏览器,以其高度定制化、安全性以及对Web标准的良好支持而广受用户喜爱。在本文中,我们将详细探讨Fire...

    火狐浏览器渗透专版.zip

    火狐浏览器渗透专版是一个为安全研究人员和渗透测试人员量身定制的Firefox浏览器版本,集成了多种实用的黑客工具,以帮助他们在网络安全测试和漏洞挖掘过程中更高效地工作。这个专版不仅包含了标准的浏览器功能,还...

    UOS系统 火狐浏览器中文版 52.3.0

    标题中的“UOS系统 火狐...用户可以在UOS上安装这两个DEB包,以获得一个本地化并经过优化的火狐浏览器体验,享受浏览网页、下载插件、保护隐私等功能。同时,由于是ESR版本,用户可以期待长期的技术支持和安全更新。

    火狐浏览器复制解锁技巧.docx

    这个“附加组件”页面是火狐浏览器管理插件的地方,你可以在这里找到并安装各种实用工具。 在“附加组件”页面,你会看到一个搜索框,输入关键词“解锁”进行搜索。火狐的插件库中有很多与解锁右键相关的插件,找到...

    Firefox火狐浏览器官方52.0.1-win32版本exe安装包

    《Firefox火狐浏览器52.0.1-win32版本:深入解析与使用指南》 Firefox火狐浏览器,由Mozilla基金会开发,是一款全球知名的开源网络浏览器。本文将围绕"Firefox火狐浏览器官方52.0.1-win32版本exe安装包"进行详细...

    火狐浏览器for linux v52.0.2.zip

    火狐浏览器英文全称Mozilla Firefox,是一个开源网页浏览器,使用Gecko引擎(非ie内核),支持多种操作系统如Windows、Mac和linux。 火狐浏览器for linux v52.0.2更新日志: 全新的定制模式让自定义你的网络体验更...

    火狐浏览器便携版

    它在功能上与标准版本的火狐浏览器并无太大差异,但便携版的一个显著特点是无需安装即可运行,只需将下载的压缩包解压到任意位置,即可启动浏览器,方便在不同电脑间携带使用,不会在系统中留下任何痕迹。...

    火狐浏览器安装包

    火狐浏览器以其强大的安全性能、丰富的扩展插件、快速的页面加载速度以及对Web标准的良好支持而广受用户喜爱。 火狐浏览器的核心特点包括: 1. 开源软件:火狐浏览器基于Gecko渲染引擎,其源代码公开,允许开发者...

    火狐浏览器51版——64bit.rar

    2. **速度与性能**:64位版本的火狐浏览器利用了现代处理器的优势,提供了更快的页面加载速度和更流畅的浏览体验。其多进程架构( Electrolysis )也提高了稳定性,减少了因某个标签页崩溃而导致整个浏览器关闭的...

    Firefox火狐浏览器官方51.0-win32版本exe安装包

    《Firefox火狐浏览器51.0-win32版本:深入解析与使用指南》 Firefox火狐浏览器,由Mozilla基金会开发,是一款全球广受欢迎的开源网络浏览器。本文将围绕"Firefox火狐浏览器官方51.0-win32版本exe安装包"进行详细...

    火狐浏览器及调试工具安装包

    总的来说,"火狐浏览器及调试工具安装包"为网页开发者提供了一站式的开发和调试环境,通过火狐浏览器的强大学习资源和Firebug的深度调试能力,可以帮助开发者提升工作效率,解决各种前端问题。无论是初学者还是经验...

    Firefox火狐浏览器官方49.0.2-win32版本exe在线安装包

    《Firefox火狐浏览器49.0.2-win32版本:深入解析与使用指南》 Firefox,又称为火狐浏览器,是由Mozilla基金会开发的一款开源、免费的网络浏览器,以其高度可定制性、强大的安全性和隐私保护功能而备受用户喜爱。在...

Global site tag (gtag.js) - Google Analytics