response.setContentType("Application/X");

解决方案 »

  1.   

    response.setContentType("application/octet-stream");
    response.setHeader("Content-Disposition",
    "attachment; filename=name.txt");
      

  2.   

    不行啊,我试了啊,
    直接加这个,是根本不行;
    response.setContentType("Application/X");
    response.setContentType("application/octet-stream");
    response.setHeader("Content-Disposition",
    "attachment; filename=name.txt");加了这个就弹出下载name.txt,而且我的是动态生成的文件名
      

  3.   

    把name改成你自己的文件名不可以嘛
      

  4.   

    不行啊,我已经试了,也就是说如何让浏览器让TXT文件下载,弹出下载对话框来
      

  5.   

    很难。把.TXT后缀改名吧。然后如果是自己处理的话还好办.如果是客户处理的话教他用文本工具打开.
    或者告诉客户点连接时 右击然后另存为.呵呵.我只知道我们这边与邮政接口是这样处理的.
      

  6.   

    不是啊,客户就要求我这样做啊,真是累死了,各位有没有好办法,就是让浏览器支持下载TXT文件
      

  7.   

    用jspsmartupload来下载这个文件。
    JSP源代码如下:
    <%@ page contentType="text/html;charset=gb2312" 
    import="com.jspsmart.upload.*" %><%
    // 新建一个SmartUpload对象
    SmartUpload su = new SmartUpload();
    // 初始化
    su.initialize(pageContext);
    // 设定contentDisposition为null以禁止浏览器自动打开文件,
    //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
    //doc时,浏览器将自动用word打开它。扩展名为pdf时,
    //浏览器将用acrobat打开。
    su.setContentDisposition(null);
    // 下载文件
    su.downloadFile("/upload/xxx.doc");
    %>注意,执行下载的页面,在Java脚本范围外(即<% ... %>之外),不要包含HTML代码、空格、回车或换行等字符,有的话将不能正确下载。不信的话,可以在上述源码中%><%之间加入一个换行符,再下载一下,保证出错。因为它影响了返回给浏览器的数据流,导致解析出错。 
      

  8.   

    用google搜索一下,可以找到很多相关资料
      

  9.   

    我试了,他报:
    type Status reportmessage http:/10.0.0.120/iLinkcard/carddown/2004-12-28-1-1-0847.txt (No such file or directory)description The requested resource (http:/10.0.0.120/iLinkcard/carddown/2004-12-28-1-1-0847.txt (No such file or directory)) is not available.
    或者报:
    org.apache.jasper.JasperException: getOutputStream() has already been called for this response
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
      

  10.   

    但实际下我输入地址http:/10.0.0.120/iLinkcard/carddown/2004-12-28-1-1-0847.txt是可以下载的
      

  11.   

    http:/10.0.0.120/iLinkcard/carddown/2004-12-28-1-1-0847.txt 
        ~~~~~这样行吗?是不是缺少一个“/”
      

  12.   

    新建一个页面down.jsp:
    <%
    java.lang.String filename = request.getParameter("filename");
    java.lang.String filepath = getServletContext().getRealPath("/") + "reports/";
    response.setContentType("APPLICATION/OCTET-STREAM");
    response.setHeader("Content-Disposition","attachment;filename=\"Excel报表.xls\"");
    java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath + filename);
    int i;
    while ((i=fileInputStream.read()) != -1) {
    out.write(i);
    }
    fileInputStream.close();
    out.close();
    %>然后在超链接处这样写:
    <a href="down.jsp?filename=<%=strFileName%>"><%=strFileName%></a>
      

  13.   

    http:/10.0.0.120/iLinkcard/carddown/2004-12-28-1-1-0847.txt 
        ~~~~~这样行吗?是不是缺少一个“/”
    我没哪有/啊楼上的,你是下载的xls啊,我用的是文本文件,我要怎么配置http头啊
      

  14.   

    这个地址有问题:http:/10.0.0.120/iLinkcard/carddown/2004-12-28-1-1-0847.txt
    应该是:http://10.0.0.120/iLinkcard/carddown/2004-12-28-1-1-0847.txt
    然后仔细检查一下这个文件在相应的物理路径下是否存在。错误信息里就是说"找不到这个文件",要么是地址有问题,要么就是文件不存在
      

  15.   

    新建一个页面down.jsp:
    <%
    java.lang.String filename = request.getParameter("filename");
    java.lang.String filepath = getServletContext().getRealPath("/") + "reports/";
    response.setContentType("APPLICATION/OCTET-STREAM");
    response.setHeader("Content-Disposition","attachment;filename=\"文本文件.txt\"");
    java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath + filename);
    int i;
    while ((i=fileInputStream.read()) != -1) {
    out.write(i);
    }
    fileInputStream.close();
    out.close();
    %>然后在超链接处这样写:
    <a href="down.jsp?filename=<%=strFileName%>"><%=strFileName%></a>
      

  16.   

    我这su.downloadFile路径都对,还报
    org.apache.jasper.JasperException: getOutputStream() has already been called for this response
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      

  17.   

    org.apache.jasper.JasperException: getOutputStream() has already been called for this response
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    怎么报这个错误,我的下载地址,都是填对了的啊
      

  18.   

    getOutputStream() has already been called for this response
      

  19.   

    呵呵!借宝地一用!一个给新手学习和讨论JAVA的群8004940   欢迎广大JAVA爱好者加入此群,不论你是JAVA初学者,还是即将开始学习JAVA的,只要你热爱JAVA 那么就别犹豫了加入此群让我们共同进步,也强烈欢迎愿意帮助并指点新人的高手进入,所有热爱JAVA的人都将十分感激您的帮助
      

  20.   

    晕啊,问题再说清楚一点,如果只是name动态的话,那太简单了;
    filename = <%=name%>,你还是说你客户的要求吧