`
843977358
  • 浏览: 245466 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用java实现下载文件

    博客分类:
  • java
阅读更多
方法一:
/**
     * 下载附件
     * @param response
     * @throws IOException 
     * @author zhangyd-c
     */
    @RequestMapping(value="/downloadAccessory")
	public void downloadAccessory(String fileName, HttpServletResponse response, HttpServletRequest request) throws IOException
		{
    		request.setCharacterEncoding("utf8");
    		//获取项目真实路径
			String ctxPath = (new StringBuilder(String.valueOf(request.getSession().getServletContext().getRealPath("/")))).append("unstandard_materials/").toString();
			//获取文件的真实路径
			String downLoadPath = (new StringBuilder(String.valueOf(ctxPath))).append(fileName).toString();
			File files = null;
			InputStream fis = null;
			OutputStream os = null;
			try {
				//获取文件
				files = new File(downLoadPath);
				//读取该文件输入流到缓存
				fis = new BufferedInputStream(new FileInputStream(downLoadPath));
				/*
				 * fis.available():返回输入流中估计的字节数(输入流方法的下一次调用的剩余字节数)。
				 */
				byte buffer[] = new byte[fis.available()];
				//按字节读取缓存
				fis.read(buffer);
				response.reset();
				response.addHeader("Content-Disposition", (new StringBuilder("attachment;filename=")).append(new String(fileName.replaceAll(" ", "").getBytes("utf-8"), "iso8859-1")).toString());
				response.addHeader("Content-Length", (new StringBuilder()).append(files.length()).toString());
				os = new BufferedOutputStream(response.getOutputStream());
				response.setContentType("application/octet-stream");
				//将字节数组写入输出流
				os.write(buffer);
				os.flush();
			} catch (FileNotFoundException e) {
				response.setContentType("text/html;charset=UTF-8");
				response.getWriter().write("服务器上不存在该附件(已丢失)!请联系管理员!");
			} catch (IOException e) {
				response.setContentType("text/html;charset=UTF-8");
				response.getWriter().write("服务器异常!请联系管理员!");
			}finally{
				if(fis != null){
					fis.close();
				}
				if(os != null){
					os.close();
				}
			}
		}

 方法二:

/**
     * 下载附件
     * @param response
     * @throws IOException 
     */
    @RequestMapping(value="/downloadAccessory")
	public void downloadAccessory(String fileName, HttpServletResponse response, HttpServletRequest request) throws IOException
		{
    		request.setCharacterEncoding("utf8");
    		response.setContentType("application/octet-stream; charset=utf-8");
    		//获取项目真实路径
			String ctxPath = (new StringBuilder(String.valueOf(request.getSession().getServletContext().getRealPath("/")))).
					append("unstandard_materials/").toString();
			//获取文件的真实路径
			String downLoadPath = (new StringBuilder(String.valueOf(ctxPath))).append(fileName).toString();
			OutputStream out = null;
			 try {
				response.reset();
				 String na = new String(fileName.getBytes("gbk"), "iso8859-1");
				 response.setHeader("Content-Disposition", "attachment; filename="+na);
				 out = response.getOutputStream();
				 out.write(FileUtils.readFileToByteArray(new File(downLoadPath)));
				 out.flush();
			}   catch (IOException e) {
				response.setContentType("text/html;charset=UTF-8");
				response.getWriter().write("服务器异常!请联系管理员!");
			}finally{
				if(out != null){
					out.close();
				}
			}
			
		}

 

分享到:
评论

相关推荐

    ajax实现java文件下载

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

    java使用itext实现pdf文件下载

    本教程将详细讲解如何使用Itext库实现PDF文件的下载,包括通过系统路径下载和通过浏览器下载两种方式。 首先,我们需要了解Itext的基本用法。Itext提供了一系列的API,可以方便地创建PDF文档的各个元素,如文本、...

    java利用oss实现下载功能

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

    java 实现 word 文档的在线预览

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

    Java实现文件下载功能

    通过上述步骤和代码示例,我们可以清晰地了解到如何使用Java实现文件下载功能。这种能力对于构建功能丰富的Web应用程序至关重要,尤其是在需要提供文档、图片、视频等多媒体资源下载的情况下。掌握这些技术细节,将...

    java实现模板下载功能

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

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

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

    Java实现批量下载

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

    使用java实现的linux和ftp服务器文件上传下载工具

    这是我使用java实现的linux和ftp服务器文件上传下载工具,需要电脑安装jdk8, 启动命令,java -jar linuxAndFtp.jar 启动成功后,浏览器访问:http://localhost:9999 服务器的账号密码通过服务器列表页面管理,添加的...

    Java实现文件下载

    以上是Java实现文件下载的基本步骤和注意事项。在提供的"Java实现HTTP文件下载_(转载).txt"文件中,可能包含了具体的示例代码或进一步的解释。通过阅读和理解这份文档,开发者可以更好地掌握Java文件下载的实现技巧...

    扫描二维码下载 JAVA实现20190403

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

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

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

    Java实现文件的RSA和DES加密

    Java 实现文件的 RSA 和 DES 加密 在现代密码技术中,根据密钥类型的不同,可以将其分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。对称加密算法用来对敏感数据等信息进行加密,常用的...

    JAVA实现的BT下载客户端

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

    Java使用NFS实现上传、下载、读取文件工具类

    2. 文件下载(File Download) 3. 文件读取(File Reading) 4、优点: 封装性:工具类封装了NFS相关的复杂连接、认证和I/O操作细节,使得业务层代码无需关心底层通信协议,只需通过简单API即可操作远程文件。 可...

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

    Java实现FTP批量大文件上传下载需要选择合适的FTP客户端库,例如J-FTP,并使用Java Applet实现基于Web的FTP客户端。需要考虑安全性问题,例如数字签名、数据加密等。同时,需要选择合适的FTP服务器端程序,例如Serv-...

    java实现简单的ftp文件下载

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

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

    本文介绍了如何使用 Java 实现 FTP 服务器上的大批量文件的上传和下载,处理大文件的上传和下载。通过 Java 现有的可用的库来编写 FTP 客户端代码,并开发成 Applet 控件,做成基于 Web 的批量、大文件的上传下载...

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

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

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

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

Global site tag (gtag.js) - Google Analytics