火狐浏览器下载的是页面

//下载的方法如下
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,但是修改成这个后缀名还能用里面的数据?求解,谢谢了!付数据库工具和下载错误的那个文件

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

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

[code="java"]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();
}

}
}[/code]

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

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