在web开发中,经常需要开发“下载”这一模块,以下给出一个简单的例子。

在服务器端,使用java开发:
@RequestMapping(value = "download.html", method = RequestMethod.GET)
public void download(String resourceid, HttpServletRequest request, HttpServletResponse response) {
response.setContentType("charset=UTF-8");
File file = new File(path);
response.setHeader("Content-Disposition", "attachment; filename=a");
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
OutputStream fos = null;
InputStream fis = null;
try {
fis = new FileInputStream(file.getAbsolutePath());
bis = new BufferedInputStream(fis);
fos = response.getOutputStream();
bos = new BufferedOutputStream(fos);
int bytesRead = 0;
byte[] buffer = new byte[5 * 1024];
while ((bytesRead = bis.read(buffer)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.flush();
}catch(E e){
}finally {
try {
bis.close();
bos.close();
fos.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
当我们在前端请求这个地址时,服务器先找出文件,设置响应头,然后通过流输出到浏览器端。
浏览器在头中发现该响应的主体是流文件,则自动会调用另存为的窗口,让用户保存下载。
这里有个关键就是Content-Disposition这个头属性,Content-Disposition是MIME协议的扩展,用于指示如何让客户端显示附件的文件。
它可以设置为两个值:
inline //在线打开
attachment //作为附件下载
这里我们设置的值为attachment,所以可以被识别为附件并下载。
上面讲了如何写服务器端,下面讲前端如何请求。
前端请求有三种方式:
1.Form
<form action='download.html' method='post'>
<input type='submit'/>
</form>
2.iframe
var iframe = "<iframe style='display:none' src='download.html'></iframe>"
body.append(iframe);
当iframe被append到body中时,会自动请求下载链接。
3.open
window.open("download.html");
相关推荐:
OpenAI网站崩溃原因:背后的技术与挑战,千牛Ai智投在哪里找
从语言助手到智能生活伙伴,未来的智能助手如何改变我们的生活,网站建设分站公司
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
seo网络培训是什么,seo工作培训会培训啥 ,ai长投影字
ChatGPTO1免费:突破智能聊天的极限,体验AI无限可能,糯米ai唱歌
seo,seoul city ,ai精洗
优化投入,让企业更具竞争力,怎样推广营销方案
ChatGPT:引领智能对话新潮流,助力未来科技,ai写作免费议论文
seo需要什么能力,seo需要哪些技术 ,ai长条弯曲
ChatGPT对于大数据发展的帮助:赋能行业变革,推动智能化未来,ai写作真的好吗
SEO项目:如何通过精确优化提升企业网站排名与转化率,武汉做网站优化的公司
什么是SEO优化方案,seo的优化方案 ,ai emorobot
自动写文章的AI,提升效率的创作利器
高效创作新时代AI文案速写工具,让创作更轻松
亚马逊中什么是seo,亚马逊sop ,ai临摹中国名画
怎么使用AI生成文章,轻松提升写作效率!
SEO运营工作是什么,seo公司运营 ,720516AI
用AI优化文章,轻松提升内容质量与创作效率
SEO优化顾问:让您的网站脱颖而出的秘密武器,ai ps 群
seo用什么写属性写,seo属于什么 ,芭田科学施肥AI
OpenAI推出的GPT-4Turbo大幅降低了AI应用成本,推动了AI技术的普及化,ai*版
【SEO优化全攻略】提升网站流量的终极秘籍,带你轻松玩转搜索引擎优化!,金融网站推广维护
seo该从什么开始,seo是什么时候开始的 ,ai写作免费英文怎么说
OpenAIGPT:开启智能时代的语言革命,ai辣妹动漫
什么是seo公司口碑,seo品牌 ,ai大模型训练是什么意思
SEO领站-从零到一打造成功网站排名的秘密,轻淘客seo怎设置
AI自动帮写,轻松应对内容创作挑战,赋能写作新未来,嘿科技ai
文章自动生成AI:助力写作新时代,让创作更高效
怎么看文章是不是AI生成的?揭秘背后的玄机与技巧
ChatGPT怎么打开不了?全方位解决方案!,大庆ai
SEO新闻:2025年最新趋势与最佳实践,你不可错过的SEO战略,郑州网络营销推广的优势
ChatGPT5.0为什么一直没出来?背后的技术与战略,元宵节ai趣赏月
SEO站群:打造强大网络营销引擎,助力企业快速提升排名与流量,seo网站排名案例
SEO出超:如何通过精准优化实现网站流量大爆发,营销推广方式联系f火15星
优化提长:让企业效能提升的秘密武器,长沙网站建设创意
seo用到什么软件,做seo需要用到什么软件 ,皮皮ai
为什么做seo的人很少,为了什么做seo ,ai不负你
AI自动生成:开启智能时代的无限可能,ai熊熊图片
英语日记AI生成:轻松提升英语水平的智能助手
SEO软优化:助力网站实现流量爆发的秘密武器,延平区网页seo
2025年整站SEO排名优化策略:让你的网站脱颖而出,id排版ai
SEO表格:优化网站排名的秘密武器,大数据推广营销费用多少
seo配置是什么,seo设置是什么 ,ai图标制作教程
好用的AI写作软件免费推荐:创作新境界!
seo读什么书,seo是哪个专业的 ,亚洲9ai吧
ChatGPT服务器坏了?了解背后的技术与应对策略,AI模块代表
seo逻辑是什么,seo思路 ,语音主播怎么ai写作业
AI网页设计生成-智能化创造无限可能,ai机甲风背景音乐
SEO要不,来看看如何通过SEO优化提高网站流量和曝光度,seo 获客技巧
seo线索收集是什么,seo线索收集是什么意思 ,ai生活ai童童