`
qingfengxia
  • 浏览: 89092 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jsp下载文件的问题

阅读更多
程序如下:

    <%@page language="java" contentType="application/x-msdownload" import="java.io.*,java.net.*" pageEncoding="gb2312"%>

<%

//关于文件下载时采用文件流输出的方式处理:

    //加上response.reset(),并且所有的%>后面不要换行,包括最后一个;

    //因为Application Server在处理编译jsp时对于%>和<%之间的内容一般是原样输出,而且默认是PrintWriter,

    //而你却要进行流输出:ServletOutputStream,这样做相当于试图在Servlet中使用两种输出机制,

    //就会发生:getOutputStream() has already been called for this response的错误

    //详细请见《More Java Pitfill》一书的第二部分 Web层Item 33:试图在Servlet中使用两种输出机制 270

    //而且如果有换行,对于文本文件没有什么问题,但是对于其它格式,比如AutoCAD、Word、Excel等文件

    //下载下来的文件中就会多出一些换行符0x0d和0x0a,这样可能导致某些格式的文件无法打开,有些也可以正常打开。

    response.reset();//可以加也可以不加

    response.setContentType("application/x-download");//设置为下载application/x-download

    // /../../退WEB-INF/classes两级到应用的根目录下去,注意Tomcat与WebLogic下面这一句得到的路径不同,WebLogic中路径最后没有/

    System.out.println(this.getClass().getClassLoader().getResource("/").getPath());

    String filenamedownload = this.getClass().getClassLoader().getResource("/").getPath() + "/../../系统解决方案.doc";

    String filenamedisplay = "系统解决方案.doc";//系统解决方案.txt

    filenamedisplay = URLEncoder.encode(filenamedisplay,"UTF-8");

    response.addHeader("Content-Disposition","attachment;filename=" + filenamedisplay);

    OutputStream output = null;

    FileInputStream fis = null;

    try

    {

        output  = response.getOutputStream();

        fis = new FileInputStream(filenamedownload);

        byte[] b = new byte[1024];

        int i = 0;

        while((i = fis.read(b)) > 0)

        {

            output.write(b, 0, i);

        }

        output.flush();

    }

    catch(Exception e)

    {

        System.out.println("Error!");

        e.printStackTrace();

    }

    finally

    {

        if(fis != null)

        {

            fis.close();

            fis = null;

        }

        if(output != null)

        {

            output.close();

            output = null;

        }

    }

%>
 
分享到:
评论

相关推荐

    jsp文件的上传和下载

    本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理。下面我们将深入探讨这个主题。 首先,文件上传通常涉及到HTTP协议中的multipart/form-data类型表单。在JSP中,我们...

    jsp页面实现文件的下载功能

    在这个场景下,我们关注的是如何在JSP页面中实现文件的下载功能。这个功能在很多网站上都常见,例如提供文档、软件或其他资源的下载服务。下面我们将详细探讨如何实现这一功能。 首先,为了创建一个下载链接,你...

    使用jsp下载excel文件

    本文档将详细介绍如何使用Java Server Pages (JSP) 实现从服务器端下载Excel文件到客户端的过程。 #### 二、准备工作 1. **环境配置**: - Java 开发工具包 (JDK) - Apache Tomcat 或其他支持 JSP 的 Web 服务器...

    JSP实现文件上传与下载.pdf

    "JSP实现文件上传与下载" JSP(Java Server Pages)是一种动态网页技术,用于开发基于Web的应用程序。...JSP文件上传和下载是Web应用程序中常用的功能,需要注意文件上传和下载的安全性、性能和可扩展性。

    基于jsp的文件上传下载

    "基于jsp的文件上传下载"是Web应用程序中的常见需求,涉及到客户端与服务器之间的数据交互。本项目详细阐述了如何利用JSP实现文件的上传和下载功能。 首先,文件上传涉及的主要技术有HTML表单、Servlet和多部分请求...

    jsp页面下载文件

    在IT行业中,JSP(JavaServer Pages)是一种用于创建...通过分析这些文件,你可以进一步了解JSP文件下载的具体实现细节,以及如何与服务器的文件系统交互。记住,安全性和用户体验是设计下载功能时必须兼顾的重要因素。

    java+jsp 文件下载(服务器上的文件)

    在Java和JSP中,实现文件下载是一项常见的任务,它涉及到服务器与客户端之间的交互,以及对文件流的处理。下面将详细讲解如何使用Java和JSP来实现这一功能。 首先,我们从`downloadtool.jsp`开始,这是一个用户界面...

    JSP下载文件源代码

    根据给定的信息,本文将详细解释如何使用JSP与SmartUpload插件来实现文件下载功能。这主要包括以下几个方面的内容:理解JSP与SmartUpload的基本概念、解析提供的代码示例、以及深入探讨SmartUpload中的关键方法。 #...

    用JSP下载word文件

    在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而Word文件则是常见的文档格式,广泛用于办公环境中。当我们需要通过Web应用程序提供文件下载服务时,JSP可以作为一个有效的工具。在这个场景中...

    JSP下载文档

    JSP文件通常由HTML、CSS、JavaScript以及嵌入的Java代码组成。在JSP中,我们使用`&lt;% %&gt;`或`&lt;%= %&gt;`等标签来编写Java代码,这些代码会被服务器执行并将其结果输出到生成的HTML页面上。 在这个"DownloadFile"项目中,...

    jsp 实现 文件 下载 jsp代码

    jsp 实现 文件下载 jspsmartupload

    使用JSP下载Word和Excel文件

    当你需要让用户从网站上下载Word或Excel文件时,JSP可以扮演关键角色。本篇将详细介绍如何利用JSP实现这一功能,包括核心知识点、步骤解析以及相关的编程技巧。 一、JSP下载原理 在JSP中,我们通常通过Servlet来...

    利用jsp实现文件上传下载

    JSP 实现文件上传下载 在本文中,我们将学习如何使用 JSP 实现文件上传和下载功能。在这个过程中,我们将使用 Apache 的 Commons FileUpload 和 Commons IO 两个库来处理文件上传和下载。 首先,让我们了解一下...

    Jsp文件上传下载

    总结来说,JSP文件上传下载是通过SmartUpload库实现的,它简化了文件操作的复杂性,使得开发者能更专注于业务逻辑。通过理解和实践SmartUpload的用法,你将能够为你的Web应用添加这一关键功能。同时,理解文件上传...

    jsp实现文件下载功能

    ### JSP实现文件下载功能详解 #### 一、引言 在Web开发中,文件下载是一项常见的需求。Java Server Pages(JSP)作为一种强大的服务器端技术,被广泛应用于构建动态网页。本文将详细介绍如何利用JSP实现文件下载...

    一个jsp上传文件、下载文件的代码

    在MyEclipse这样的集成开发环境中,开发和调试JSP文件上传下载功能非常便捷。"updowntest"可能是一个项目或文件夹名称,里面可能包含了实现这些功能的JSP页面、Servlet类以及相关的配置文件。 总结来说,这个示例...

    使用JSP实现上传下载文件jspSmartUpload

    以下是一个简单的JSP文件下载示例: ```jsp String fileName = "path/to/your/file.txt"; response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); response.setHeader(...

    JSP上传下载组件 包含源码及帮助文档

    JSPSmartUpload是一个功能强大的JSP文件上传组件,它封装了文件上传的复杂过程,包括文件大小检查、类型检查、文件重命名等。开发者可以通过简单的API调用来实现文件上传功能。 **3. 使用步骤** - **创建上传表单**...

    jsp文件上传下载模块

    在这个"jsp文件上传下载模块"中,核心是利用了`jspsmartupload`组件来实现文件的上传和下载功能。`jspsmartupload`是一个早期的JSP上传组件,它为JSP应用提供了处理用户上传文件的能力,尤其适用于处理大文件上传和...

Global site tag (gtag.js) - Google Analytics