`

设置HTTP文件下载四要诀

阅读更多

提示一:强制下载并控制文件名

在HTML中提供一个下载链接很简单:

 
1.<a href="http://download.httpwatch.com/httpwatch.exe">Download<a>

对于浏览器不知道如何呈现的二进制文件,如安装程序和ZIP文件,这工作的很好。这会出现一个对话框,允许用户将文件存储到本地。

IE File Save Dialog

问题在于,如果文件能呈现自己,不同的浏览器行为就不一样。例如,如果你链接一个纯文本文件,浏览器会打开它,不会提示保存下载。

Plain Text in IE

你可以加入以下响应头文件强制使用文件下载对话框。

Content-Disposition: attachment; filename=<file name.ext>

头部还可以控制默认的文件名,这可以帮助你方便的生成像getfile.aspx一样的内容,但你要提供一个更有意义的文件名给用户。

对于静态内容,您可以在您的Web服务器手动配置额外的头文件。例如,下面是在IIS中设置:

content_disposition_header

为动态生成的内容,您需要在网页的服务器端代码中添加此头部。

加入了头部之后,浏览器总是提示用户下载该文件:

plain_text_download

提示2:使用有效的HTTP缓存

与任何其他内容一样,它值得设置HTTP缓存最大限度地提高下载速度,减少带宽的成本。常规的内容需要立即过期,或者被永远缓存。

我们下载HTTP规范(RFC2616)的例子可以永远被缓存,因为不希望改变它。在HttpWatch可以看到这些,我们设置了一个很长的过期时间,并将Cache-Control 的值设为“public”。

effective_caching

这样将来下载文件就可以从本地浏览器缓存中或中间代理来传输。如果该文件频繁变换,你可能需要它立即过期,以便总是下载新的副本。你可以通过设置Expires为-1或以往的任何日期。

提示3:不要破坏IE浏览器HTTPS下载

利用Cache-Control响应头部,人们可以很容易的使用无存储和无缓存以防止任何一个文件缓存频繁更新。

 
1.Cache-Control: no-store, no-cache

这在Firefox能工作,但在Internet Explorer就得要小心。它将这些标签解释为--正在是用HTTPS 时,内容永远不会存储到磁盘,导致文件下载对话框在0%挂起几分钟。

https_ie_hang

它最终会显示一条错误信息:

https_ie_error.png

post on Eric Lawrence’s IEInternals blog 这篇文章中,有更多关于此问题和其它原因的信息。

提示4:不要忘了Setup Analytics

在你的的网站,你可能要一并跟踪下载文件和其他指标。基于JavaScript基础的解决方 案,如谷歌分析备受欢迎,但默认情况下不显示文件下载。这是因为下载一个文件不会导致任何JavaScript的执行。使用谷歌分析,您需要添加一个 onlick处理程序来追踪下载。

 
1.<a onclick="pageTracker._trackPageview("/httpwatch.exe");" href="...">Download</a>

你可以看到文件开始下载之前谷歌分析被调用了。

转载地址:http://www.denisdeng.com/?p=773

原文地址:Four Tips for Setting up HTTP File Downloads

分享到:
评论

相关推荐

    求精要诀——JavaEE编程开发案例精讲 源代码

    求精要诀——JavaEE编程开发案例精讲 文件过大无法全部上传该部分是 1-7章实践部分 源代码

    软件管理沉思录:SEI的项目管理、人际沟通和团队协作要诀,完整扫描版

    本书为软件工程领域权威人士之作,书中首先深入讲解了计划类型和计划过程,接着分析了项目团队建设和激励,然后描写了如何与经理共事,如何说服他们采用最佳实践,最后探讨了个人职责、承诺和过程。...

    3天成为PowerPoint幻灯演示高手(PDF)

    满足您制作报告的所有需求:包含调整版面配置,编辑文字与表格,绘制Excel图表,插入图片与多媒体文件,美化幻灯片,还有报告时所需的文件打印功能。课程3 让您成为现场实战高手提供市面上独一无二的投影机实战技巧...

    abaqus常见问题汇总2.0

    1. 论坛提问要诀 5 2. 故障诊断基本方法 5 3. 约束刚体位移 / NUMERICAL SINGULARITY 6 4.过约束(Overconstraint) 8 5.其他常见error和warning信息 9 6.ABAQUS无法正常运行(安装、License、环境变量) 13 6.1 ...

    Eclipse中文使用教程

    要诀和技巧 (Tips and Tricks ) 7 .1编辑程序文件 ( Editing Source ) 7 .2搜寻 ( Searching ) 7 .3程序代码导览和读取 ( Code navigation and reading ) 7 .4 Java 视图 (Java views ) 7 .5除错 ( Debugging ) 7 .6...

    Eclipse中文教程

    Eclipse中文教程三册全集 0.环境说明 .................................................................... 8 1.Eclipse 简介....................................................................

    Eclipse中文教程.pdf

    Eclipse – 整合开发工具(基础篇) Jacky Lee 2005/03/01 教程特点: 1、图文并茂的详细介绍了eclipse的使用方法 2、虽然是pdf,但是非影音版,所有相当清晰 3、含文档结构目录,可以方便的跳转到对应章节 ...

    Eclipse 中文教程

    7.要诀和技巧(Tips and Tricks) 204 7.1编辑程序文件(Editing Source) 204 7.2搜寻(Searching) 209 7.3程序代码导览和读取(Code navigation and reading) 210 7.4 Java视图(Java views) 213 7.5除错(Debugging) 215 ...

    eclipse 中文版教程

    7要诀和技巧(Tips and Tricks) 267 71 编辑程序文件(Editing Source) 267 wwwalibubucom Eclipse 中文教程doc 第 7 頁,共 288 頁 72 搜寻(Searching) 272 73 程序代码导览和读取(Code navigation and ...

    Eclipse从入门到精通.rar

    7.要诀和技巧(Tips and Tricks) ....................... 267 7.1 编辑程序文件(Editing Source)................. 267 Eclipse 中文教程.doc 第 7 頁,共 288 頁 7.2 搜寻(Searching)...... 272 7.3 程序代码导...

Global site tag (gtag.js) - Google Analytics