文档章节

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

 菜鸟来了
发布于 2017/06/02 16:04
字数 162
阅读 12
收藏 0
点赞 0
评论 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
2.2 Apache配置静态缓存

CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/custom%Y%m%d.log 86400" combined env=!image-request <IfModule modexpires.c> ExpiresActive on ExpiresByTy......

ipirate
2016/02/14
16
0
手机端访问文件后会默认下载到手机的系统文件中,退出后临时文件不会自动删除,使用代码怎么删除?

手机端下载文件后会自动的将文件保存到系统文件夹中(以“.”开头),用户是看不到这个文件夹的,使用第三方软件可以查看下载的文件,文件格式是常用的,jpg、png、jpeg、txt、doc、docx、x...

海纳百川-lhz
2017/08/11
26
0
处理筛选CelebA人脸数据集

引 CalebA人脸数据集(官网链接)是香港中文大学的开放数据,包含10,177个名人身份的202,599张人脸图片,并且都做好了特征标记,这对人脸相关的训练是非常好用的数据集。 image.png 别看只是...

Cloudox_
2017/11/27
0
0
手机邮件客户端--PicoMail

PicoMail 是一个快速、功能非常全面的手机邮件客户端,基于J2ME开发。可轻松进行邮件账号配置、支持HTML邮件、图像(GIFJPGPNGTIFFBMP)和附件。可对图像进行缩放、全屏显示。支持 POP3、IMAP和...

匿名
2010/12/05
1K
0
robots.txt的正确使用

robots.txt的位置:项目路径WebRoot根目录下。 验证方式:访问项目地址/robots.txt 1、如果允许所有搜索引擎访问网站的所有部分的话: User-agent: Disallow: 或者 User-agent: Allow: / 2、...

专注97
2016/01/14
18
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ES15-JAVA API 索引管理

1.创建连接 创建连接demo package com.sean.esapi.client;import java.net.InetSocketAddress;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.clien......

贾峰uk
6分钟前
0
0
单点登录的设计,从单域名到多域名(经验分享)

个人实践总结,最初的的需求,多个产品线都在同一个根域名下面。 独立的用户中心分离,单独负责用户登录和用户信息获取、变更等处理逻辑。 第一步,用户登录成功,分配给用户一个memToken(令...

小海bug
7分钟前
0
0
合格前端第十二弹-TypeScript + 大型项目

写在前面 TypeScript 已经出来很久了,很多大公司很多大项目也都在使用它进行开发。上个月,我这边也正式跟进一个对集团的大型运维类项目。 项目要做的事情大致分为以下几个大模块 一站式管理...

qiangdada
11分钟前
0
0
编程学习之如何在Node.js中优化服务器端渲染?[图]

编程学习之如何在Node.js中优化服务器端渲染?[图] 在 Airbnb,我们花了数年时间将所有前端代码迁移到 React 架构,Ruby on Rails 在 Web 应用中所占的比例每天都在减少。实际上,我们很快会...

原创小博客
13分钟前
0
0
gradle学习笔记

相关文档 适合新手的 gradle 自学教程合集 Gradle教程

OSC_fly
27分钟前
0
0
Virtual Serial Port - RFC2217

Virtual Serial Port for Linux RFC-2217 The COM Port Control Protocol pyserial - RFC 2217 NetSerial - Windows Telnet COM Port - RFC Official Using Python, How do I make a virtual......

zungyiu
34分钟前
0
0
全球的IPv6部署急剧增加,中国进度较慢

导读 全球的IPv6部署继续增加,但中国在IPv6方面还需要努力,从部署图上分析,中国几乎没有几个地方是普及IPv6的。这6年来,自世界IPv6发布以来,全球网络和服务提供商的IPv6部署水平急剧增加...

问题终结者
38分钟前
1
0
好看的电影记录

星际迷航三 狂暴之路 新木乃伊 黑夜传说 铁血战士2

xd03122049
41分钟前
0
0
记录Yii2框架开发遇到微信错误提示

转载地址 记录Yii2框架开发遇到微信错误提示 微信公共号开发,提示“该公众号暂时无法提供服务,请稍后再试”,如何解决? 以前使用Yii框架的时候,并没有像Yii2,以前的Yii框架似乎用起来在...

durban
43分钟前
1
0
LSM树(Log-Structured Merge Tree)存储引擎浅析

其实每一种数据库,它都是一种抽象的数据结构的具体实现。 随着rocksDB(facebook的),levelDB(google的),以及我们熟知的hbase,他们都是使用的LSM树结构的数据库。 它的核心思路其实非常...

算法之名
57分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部