文档章节

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

 菜鸟来了
发布于 2017/06/02 16:04
字数 162
阅读 13
收藏 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
客户端js判断上传文件类型和文件大小

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

hxyhxl
2016/03/12
0
0
django1.6 发送邮件(二)

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

山下狮子
2014/06/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多线程

1. 多线程概念。并发和并行的概念。 多线程指的是一段时间内cpu同时执行多个线程。一个程序至少运行>=1个进程,进程就是运行中的程序,而一个进程至少运行>=1个线程,线程是操作系统能调度的...

鱼想吃肉
今天
0
0
HBase 表修复在线方式和离线方式

一、在线修复 1.1 使用检查命令 $ ./bin/hbase hbck 该命令可完整修复 HBase 元数据信息;存在有错误信息会进行输出; 也可以通过如下命令查看详细信息: $ ./bin/hbase hbck -details 1.2 ...

Ryan-瑞恩
今天
3
0
redis 系列二 -- 常用命令

1.基础命令 info ping quit save dbsize select flushdb flushall 2.键命令 2.1 set 直接赋值 set a a 2.2 get 取值 get a 2.3 exists 是否存在 exists a 2.4 expire 设置剩余时间 秒 expire......

imbiao
今天
2
0
php foreach

<?php// 数组的引用$a=array(1,2,3,4,5);foreach($a as $key=>&$value){$value=$value*2;}print_r($a);echo " $key -------------------$value\r\n";/** * ...

小张525
今天
3
0
12-利用思维导图梳理JavaSE-多线程

12-利用思维导图梳理JavaSE-多线程 主要内容 1.线程概念 2.线程开发 3.线程的状态 4.线程的同步和死锁 5.Java5.0并发库类 QQ/知识星球/个人WeChat/公众号二维码 本文为原创文章,如果对你有一...

飞鱼说编程
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部