文档章节

javaweb实现附件下载 如:txt,png,jpg等

 菜鸟来了
发布于 2017/06/02 16:04
字数 162
阅读 14
收藏 0
/**
	 * springMVC文件下载 (txt,png等格式)
	 * @param request
	 * @param response
	 * @throws Exception 
	 * @throws UnsupportedEncodingException 
	 */
	@RequestMapping(params="method=downloadFile",method=RequestMethod.GET)
	public void downloadFile(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ServletContext sc  = request.getSession().getServletContext();
		String path = request.getParameter("path");
		String fileName = request.getParameter("fileName");
		if(!fileName.contains(".")){
			if(StringUtils.isNotBlank(path)){
				fileName= fileName+"." +path.split("\\u002E")[1];
			}
		}
		String filePath =sc.getRealPath(path);
		File file =  new File(filePath);
		if(!file.exists()){
			throw new Exception("文件不存在!");
		}
		try {
			FileInputStream in = new FileInputStream(file);
			response.setHeader("content-disposition", "attachment;filename=" +URLEncoder.encode(fileName, "UTF-8"));
			OutputStream out =response.getOutputStream();
			byte buffer[] = new byte[1024];
			int len = 0;
			while((len=in.read(buffer))>0){
				out.write(buffer, 0, len);
			}
			//关闭文件输入流
			in.close();
			//关闭输出流
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}

注意事项:

1,ajax请求无效。

© 著作权归作者所有

共有 人打赏支持
粉丝 3
博文 44
码字总数 9039
作品 0
南昌
程序员
私信 提问
SVN版本库 windows下操作

windows下SVN编辑 请先安装 TortoiseSVN 小乌龟。百度或是 https://tortoisesvn.net/downloads.html 创建工作目录(检出): 目的:项目文件从远程服务器下载到本地工作目录中。 新建工作目录...

alex-shen
2016/01/06
78
0
老牌压缩软件WinZip发布iOS版应用

大家听过WinZip压缩软件把,这款软件在1991年发布,支持Windows和Mac系统。现在WinZip刚刚发布了一款iOS版应用,允许你在iOS设备上查看压缩文件。iOS版WinZip主要功能包括: -从邮件中打开Z...

红薯
2012/02/17
2K
2
Mantis上传附件到disk的设置方法

主要配置项修改: 1、修改mantisconfiginc.php配置文件 $gallowfileupload = ON; $gfileuploadmethod = DISK; 如果没有,则手动添加这两行。 2、上传文件的大小受到 Mantisconfiginc.php 和 ...

红薯
2010/04/11
1K
0
django1.6 发送邮件(二)

The EmailMessage class 在第一部分中,sendmail()和sendmass_mail都是对EmailMessage类包装。有些高级功能这两个函数是提供不了的,需要自己建立一个EmailMessage类。 例如,隐匿抄送,文件...

山下狮子
2014/06/13
0
0
客户端js判断上传文件类型和文件大小

由于项目需要,需要脚本在客户端判断上传文件大小和类型!兼容ie6,ie7,ie8 ,Google Chrome,ff等浏览器

hxyhxl
2016/03/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

epoll中使用

1、一个线程epoll_wait时,另一个线程调用epoll_ctl是安全的。 2、使用edge触发,在socket有数据到来后,不收取数据,再次调用epoll_ctl将socket加入,仍会触发下一次动作。 asio用该方法来发...

gelare
10分钟前
0
0
PHP规范PSR2

PSR标准 - PSR-2 为了尽可能的提升阅读其他人代码时的效率,下面例举了一系列的通用规则,特别是有关于PHP代码风格的。 各个成员项目间的共性组成了这组代码规范。当开发者们在多个项目中合作...

geek土拨鼠
26分钟前
4
0
【极简】如何在服务器上安装SSL证书?

本文适合任何人了解,图形化操作。下面以腾讯云为例,并且服务器(linux)也安装了宝塔面板。 1.登陆腾讯云账号进入控制台,找到SSL的产品 2.按要求申请并填写表单,记住私钥密码 3.提交后,待...

皇冠小丑
34分钟前
0
0
深入理解编译器

深入理解编译器 原文出处 欢迎向Rust中文社区投稿,投稿地址,好文将在以下地方直接展示 1 Rust中文社区首页 2 Rust中文社区Rust文章栏目 3 知乎专栏Rust语言 编程语言是如何工作的 从内部理解...

krircc
36分钟前
0
0
Centos7&docker-ce&compose&wordpress

如题,最近帮人装个WordPress,想起来用docker方便,这里做个记录。 因为docker要求linux内核版本3.10以上我记得,所以直接用的centos7省去很多麻烦。 主机在国内的先把yum源改成国内的阿里云...

虚拟世界的懒猫
40分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部