`

下载服务器上的文件-纯java处理

阅读更多
public void download(HttpServletRequest request, HttpServletResponse response,String fileUrl,String fileName) {
		java.io.BufferedInputStream bis = null;
		java.io.BufferedOutputStream bos = null;
		try {
			// 客户使用保存文件的对话框:
			fileName = WebUtils.encodeFileName(request, fileName)
					.replaceAll("\\+", "%20");
			fileUrl = new String(fileUrl.getBytes("utf-8"), "utf-8");
			response.setContentType("application/x-msdownload");
			response.setCharacterEncoding("utf-8");
			response.setHeader("Content-disposition", "attachment; filename="
					+ fileName);
			// 通知客户文件的MIME类型:
			bis = new java.io.BufferedInputStream(new java.io.FileInputStream(
					(fileUrl)));
			bos = new java.io.BufferedOutputStream(response.getOutputStream());
			byte[] buff = new byte[2048];
			int bytesRead;
			int i = 0;

			while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
				bos.write(buff, 0, bytesRead);
				i++;
			}
			bos.flush();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (bis != null) {
				try {
					bis.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				bis = null;
			}
			if (bos != null) {
				try {
					bos.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				bos = null;
			}
		}

	}

 

   调用的时候直接传具体的URL和fileName就可以了,比如我的文件存放在:D:\\resources\\test.pdf;

调用的时候直接赋值就可以了

String fileUrl = "D:\\resources\\test.pdf";
String fileName=test.pdf;
download(request, response, fileUrl, fileName)

 

 

分享到:
评论
4 楼 插上翅膀的小猪 2015-12-21  
同意三楼的意见。
3 楼 ITQCF 2015-07-07  
一楼所言极是啊,encodeFileName这个方法为嘛找不到呢?
2 楼 u011296404 2014-10-22  
这个不适用与ie浏览器
1 楼 pangpang514 2012-06-06  
WebUtils是在org.springframework.web.util下么?怎么没有encodeFileName这个个方法!!!!

相关推荐

    mysql-connector-java-8.0.26.jar

    它是MySQL数据库的JDBC类型4驱动,这意味着它是一个纯Java实现,无需依赖于操作系统或特定的本地库。这使得它可以在各种Java运行环境中使用,如JVM(Java Virtual Machine)或Tomcat这样的应用服务器。 在开发Java...

    mysql-connector-java-8.0.23.jar

    MySQL Connector/J属于Type 4,即纯Java实现的非阻塞、完全基于网络协议的驱动,无需依赖本地库,可以在任何支持Java的平台上运行。 MySQL-connector-java-8.0.23.jar的具体功能包括: 1. **连接管理**:提供建立、...

    mysql-connector-java-5.1.37

    1. **JDBC驱动程序类型**:MySQL Connector/J是Type 4 JDBC驱动,意味着它是纯Java实现的网络驱动,无需依赖操作系统特定的库。它直接处理网络通信,将SQL语句发送到MySQL服务器并接收返回的结果。 2. **连接配置**...

    mysql驱动包-mysql-connector-java-5.1.41-bin.zip

    由于其纯Java特性,这个驱动可以在任何支持Java的平台上运行,包括Windows、Linux、Mac OS等。 **JDBC驱动的分类** 在JDBC中,驱动分为四类: 1. 类型1(JDBC-ODBC桥接):将Java应用程序与ODBC驱动程序连接起来,...

    mysql-connector-java-8.0.24.jar

    2. **JDBC驱动类型**:MySQL Connector/J属于Type 4纯Java驱动,无需安装客户端库,直接通过网络与MySQL服务器通信。 3. **连接配置**:使用`java.sql.DriverManager.getConnection()`方法建立连接,需要提供数据库...

    mysql-connector-java-5.1.30

    MySQL Connector/J属于Type 4 JDBC驱动,意味着它是纯Java实现,无需安装任何本地库,可以在任何支持Java的平台上运行。 3. **功能**: - 数据库连接:通过`java.sql.DriverManager.getConnection()`方法创建到...

    mysql-connector-java-5.1.32.tar.gz

    JDBC驱动程序分为四种类型:Type 1(纯Java驱动),Type 2(混合驱动),Type 3(网络协议驱动)和Type 4(纯Java的Socket驱动)。MySQL Connector/J是Type 4驱动,它完全由Java编写,无需依赖操作系统特定的库,...

    MySQL-connector-java-5.1.46.jar

    这个JAR(Java Archive)文件包含了必要的类和资源,使得开发人员能够在Java应用程序中执行SQL查询、管理数据库事务、处理结果集等一系列数据库操作。 MySQL Connector/J是MySQL官方提供的Java驱动程序,它是符合...

    mysql-connector-java-5.1.27.jar

    MySQL Connector/J属于Type 4,即纯Java的网络驱动,无需依赖于本地数据库客户端库,因此具有良好的平台兼容性。 2. **MySQL Connector/J 5.1.27的特性** - **兼容性**:此版本的驱动程序设计与MySQL 5.x系列兼容...

    email客户端-实现发送邮件-纯java实现-包括所需要的库文件

    在这个“email客户端-实现发送邮件-纯java实现-包括所需要的库文件”的主题中,我们将深入探讨如何使用 JavaMail API 实现一个简单的电子邮件客户端,以及必要的库文件。 首先,JavaMail API 提供了 javax.mail 包...

    mysql-connector-java-5.1.20-bin.jar

    JDBC驱动提供了四种类型,其中Type 4如`mysql-connector-java`是纯Java实现的非协议特定的驱动,可以直接与数据库进行通信,无需依赖于中间的数据库特定库或API。 使用`mysql-connector-java-5.1.20-bin.jar`之前,...

    使用Java向服务器上传文件压缩包并实现解压缩

    JSch是一个纯Java实现的SSH2库,它允许用户连接到SFTP服务器,进行文件传输、创建目录、删除文件等操作。首先,我们需要在项目中引入JSch库,然后创建一个`Session`对象,设置用户名、密码或密钥对,并连接到SFTP...

    java数据库驱动:mysql-connector-java-5.1.zip

    在本压缩包中,`mysql-connector-java-5.1.46-bin.jar`和`mysql-connector-java-5.1.46.jar`是驱动的核心文件,分别对应于不同打包方式的驱动,前者包含了本地二进制库,后者则是一个纯Java实现,可以在不需要本地库...

    mysql-connector-java-5.1.24-bin.jar.zip

    它是MySQL官方提供的纯Java实现的JDBC驱动,符合Java的标准规范,可以在任何支持Java的平台上运行,无需进行平台相关的编译或配置。它的主要任务是提供一套接口,使得Java程序可以按照JDBC标准与MySQL服务器进行交互...

    mysql-connector-java-8.0.19.zip

    MySQL Connector/J实现了JDBC驱动程序的四种类型:Type 1(纯Java,使用ODBC桥),Type 2(混合模式,使用本地协议),Type 3(纯Java,使用网络协议)以及Type 4(纯Java,直接与数据库通信)。MySQL Connector/J...

    mysql-connector-java-5.1.15-bin.jar

    JDBC驱动程序主要分为四种类型:Type 1、Type 2、Type 3和Type 4,其中MySQL Connector/J属于Type 4,即纯Java实现,无需依赖于操作系统或数据库供应商的特定库,因此具有良好的平台兼容性。 MySQL Connector/J的...

    mysql-connector-java-8.0.27

    1. **JDBC驱动类型**:MySQL Connector/J属于Type 4 JDBC驱动,提供了纯Java实现,无需安装任何额外的客户端库,可以在任何支持Java的平台上运行。 2. **连接配置**:通过提供数据库URL、用户名和密码,开发者可以...

    mysql-connector-java(jdbc)

    2. `mysql-connector-java-5.1.46.jar`:这个版本是纯Java实现,不包含任何本地库,因此可以在任何支持Java的平台上运行。如果你的应用不需要本地优化或者是在跨平台的环境中,可以选择这个版本。 接下来,你需要将...

    mysql5.x最新版本驱动 mysql-connector-java-5.1.47.rar

    `mysql-connector-java-5.1.47`属于Type 4,它使用纯Java实现,可以直接通过网络与MySQL服务器通信,无需依赖操作系统特定的库。 使用`mysql-connector-java-5.1.47`时,你需要在Java应用中添加对应的JAR文件到类...

Global site tag (gtag.js) - Google Analytics