`

java实现文件下载

阅读更多

 

一、采用RequestDispatcher的方式进行

1、web.xml文件中增加

<mime-mapping>

    <extension>doc</extension>

    <mime-type>application/vnd.ms-word</mime-type>

</mime-mapping>

 

2、程序如下:

    < %@page language="java" import="java.net.*" pageEncoding="gb2312"%>

<%

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

    String filenamedownload = "/ 系统解决方案 .doc";// 即将下载的文件的相对路径

    String filenamedisplay = " 系统解决方案 .doc";// 下载文件时显示的文件保存名称

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

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

 

    try

    {

        RequestDispatcher dispatcher = application.getRequestDispatcher(filenamedownload);

        if(dispatcher != null)

        {

            dispatcher.forward(request,response);

        }

        response.flushBuffer();

    }

    catch(Exception e)

    {

        e.printStackTrace();

    }

    finally

    {

 

    }

%>

 

二、采用文件流输出的方式下载

1、web.xml文件中增加

<mime-mapping>

    <extension>doc</extension>

    <mime-type>application/vnd.ms-word</mime-type>

</mime-mapping>

 

2、程序如下:

    < %@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)

        {

 

 

分享到:
评论
1 楼 forever_lovebing 2014-06-19  
[b][/b]

相关推荐

    Java实现文件下载功能

    ### Java实现文件下载功能 在IT领域,尤其是Web开发中,文件下载是常见的需求之一,例如用户可能需要从服务器下载各种类型的文件,如文档、图片、压缩包等。本文将详细解析如何使用Java来实现这一功能,特别是针对...

    java实现文件下载,并弹出保存对话框(Excel)

    本文将深入探讨如何使用Java实现文件下载,并在客户端弹出保存对话框,特别聚焦于Excel文件的处理,这在企业级应用中尤为常见。 ### Java实现文件下载的关键步骤 1. **设置HTTP响应头**:为了触发浏览器的下载行为...

    ajax实现java文件下载

    在现代Web应用中,用户对交互性和...总结起来,Ajax实现Java文件下载是一种提高用户体验的有效手段,通过前后端的协同工作,实现了无刷新的文件下载功能。理解并掌握这一技术,对于提升Web应用的交互性具有重要意义。

    java使用itext实现pdf文件下载

    现在,我们转向主题,即如何在Java中实现PDF文件的下载。有两种主要的方式: 1. **通过系统路径下载**:这种方式适用于后台生成PDF后,直接保存到服务器的某个路径,然后提供URL给用户下载。以下是一个简单的示例:...

    java利用oss实现下载功能

    "java利用oss实现下载功能" Java是当前最流行的编程语言之一,而 OSS(Object Storage Service)是阿里云提供的一种对象存储服务,通过使用Java和OSS可以实现下载功能。本文将详细介绍如何使用Java和OSS实现下载...

    java实现模板下载功能

    ### Java 实现模板下载功能详解 #### 一、概述 在Web应用开发中,模板下载功能是常见需求之一,尤其在报表系统、数据导出等场景下应用广泛。本篇文章将详细阐述如何利用Java技术栈实现一个简单的模板下载功能。 #...

    Java实现批量下载

    Java实现批量下载 Java中的批量下载是指通过Java程序实现多个文件的压缩和下载,今天我们将讨论如何使用Java实现批量下载,并将其压缩为zip包。 标题解释 标题“Java实现批量下载”表明了本节的主题,即使用Java...

    java 实现 word 文档的在线预览

    这项功能可以让用户无需下载原始文件就能查看文档内容,提高工作效率并减少服务器存储压力。本资源提供的代码和jar包正是为了解决这一问题。 首先,我们要理解Java实现Word在线预览的基本原理。这通常涉及到将Word...

    java代码实现文件上传和下载

    在java代码中实现文件的上传和下载,通过页面的file文件上传到java代码段,获取文件的大小和名字

    扫描二维码下载 JAVA实现20190403

    本文将深入探讨如何使用JAVA实现扫描二维码自动下载对应客户端类型的APP功能。 首先,我们需要理解二维码的基本原理。二维码(Quick Response Code)是一种二维条形码,存储的数据可以是网址、文字、图片、联系人...

    JAVA实现的BT下载客户端

    本人用JAVA写的一个BT下载客户端 是本人的毕业设计 界面用SWT实现 后台引用了国外著名的Vuze开源软件的后台 能实现下载上传,种子的解析和生成 软件的功能不是很全 但是本人一手摸索着写成的东西 费了不少心思 是...

    java实现pdf上传,下载,在线预览,删除,修改等功能

    这里我们将深入探讨这些功能的实现,并结合标签`java xpdf java实现pdf`来讨论XPDF库在Java中的应用。 1. **PDF上传**: PDF上传通常涉及用户通过Web界面或API接口提交PDF文件。Java中,可以使用Apache Commons ...

    java图形化实现文件上传_javagui上传文件,gui编写上传下载文件功能-Java文档类资源

    利用java图形化界面和网络编程相结合实现的--文件上传。 运行步骤: (1)分别运行工程两个包中的两个.java文件(UploadClient.java和UploadServer.java)分别会弹出“上传客服端”和“上传服务器”两个窗口。 ...

    java实现简单的ftp文件下载

    在`easyfile`这个压缩包文件中,可能包含了一个简单的Java实现,展示了如何进行上述步骤。通过阅读和理解代码,你可以更深入地了解FTP文件下载的实现细节。记住,实践是学习的最佳途径,尝试自己动手编写代码并运行...

    java实现cos上传与下载

    Java实现COS(Cloud Object Storage)上传与下载是云计算服务中的常见操作,主要涉及对象存储的概念、Java SDK的使用以及文件I/O操作。COS通常由云服务提供商提供,用于存储大量的非结构化数据,如图片、视频、文档...

    Java实现FTP批量大文件上传下载.pdf

    Java实现FTP批量大文件上传下载 一、Java FTP客户端库的选择 在选择Java FTP客户端库时,需要考虑多个因素,例如性能、安全性、可靠性等。当前有多种FTP客户端库可供选择,例如J-FTP、SimpleFTP、FTPClient等。每...

    Java 利用多线程实现文件的分片下载

    大文件的快速下载,经测试在100M带宽的网络下,下载一个40M的文件,不超过两秒钟,当然还得根据自己电脑的配置来讲。 其他说明: 文件如果特别小,而自己网络又非常好的情况下,不建议使用线程池进行下载,因为...

    Java 实现的断点下载

    Java 断点下载技术是Java编程中用于网络文件下载的一种高效方法,特别是在处理大文件时,它允许用户中断和恢复下载过程。断点下载的基本原理是通过保存已下载部分的信息,如下载的总长度、已下载的字节数以及当前...

    用JAVA实现远程图片批量下载

    ### 使用JAVA实现远程图片批量下载的关键技术点 #### 一、引言 随着互联网的快速发展,用户对于网络资源的需求越来越多样化。其中,批量下载图片的需求尤为显著,尤其是在处理网络相册、电子书籍等内容时。传统的...

    迅雷下载接口java实现

    本话题将深入探讨如何使用Java实现迅雷下载接口,这是一项利用迅雷的动态链接库(DLL)和C++开放接口来提升下载效率和稳定性的技术实践。 首先,我们需要了解迅雷的C++开放接口。迅雷为了方便开发者集成其下载功能...

Global site tag (gtag.js) - Google Analytics