通过标记或JS强制下载

2024-06-29

假设我在 CDN(来自 Rackspace 的云文件)上有一个文件,以及一个包含该文件链接的静态 html 页面。有什么方法可以强制下载此文件(以防止它在浏览器中打开 - 例如 mp3)?

我们可以让我们的服务器读取该文件并将相应的标头设置为:

header("Content-Type: application/force-download")

但我们每月大约有 500 万次下载,所以我们宁愿让 CDN 来处理这个问题。

有任何想法吗?


There’s no way to do this in HTML or JavaScript. There is now! (Ish. See @BruceAldrige’s answer below.) https://stackoverflow.com/a/14802816/20578

超文本传输​​协议Content-Disposition标头告诉浏览器下载文件,由服务器发送。您必须配置 CDN 以发送该标头以及您想要浏览器下载而不是显示的任何文件。

无奈的是,我完全不熟悉 Rackspace 的云文件服务,所以我不知道他们是否允许这样做,也不知道如何做到这一点。遗憾的是,刚刚发现 2009 年 12 月的一个页面表明没有想到:

云文件无法提供带有“Content-Disposition:附件”HTTP 标头的文件。因此,在任何其他服务中都能完美运行的下载链接可能会导致浏览器直接呈现文件。 Rackspace 工程师证实了这一点。 :-(

http://drupal.org/node/656714 http://drupal.org/node/656714

我知道您可以使用 Amazon 的 CloudFront 服务,因为它由 S3 支持(参见例如http://blog.cloudberrylab.com/2009/06/how-to-set-custom-http-headers-for.html http://blog.cloudberrylab.com/2009/06/how-to-set-custom-http-headers-for.html)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过标记或JS强制下载 的相关文章

  • 了解 HTML 5 事件拖动

    我不明白为什么在事件拖动中鼠标坐标clientX的返回值总是0或释放鼠标之前的负值 我准备了一个例子 当用户dragstart 鼠标位置正确 结束同样dragend 但是如果你查看控制台drag你会看到之前dragend负值 是正常行为吗
  • 如何使用javascript从另一个页面(同一域)的内容中获取信息?

    假设我有一个网页 index html 包含以下内容 li div item1 div a href details item1 html details a li 我想要一些 javascript index html加载那个 detai
  • 更新主干模型/视图的轮询请求

    我需要找到一种方法来更新使用以下实现的网络应用程序backbone 用例如下 我有几个视图 每个视图 或者可能与该视图相关的模型 集合 需要在不同的时间向服务器发出不同的轮询请求以发现某些变化 我想知道最通用的方法是什么 1 实施Tradi
  • 通过setRequestHeader授权

    我发现这段代码可以使用 setRequestheader 和 Ajax 进行身份验证 this xmlDoc setRequestHeader Authorization Basic Base64 encode User Password
  • d3.js 结合分层边缘捆绑和径向 Reingold–Tilford 树 + 数据

    我想 某种程度上 结合分层边缘捆绑 http bl ocks org mbostock 7607999和径向 Reingold Tilford 树 http bl ocks org mbostock 4063550 It would loo
  • C# 在 WebBrowser 中调用 JavaScript

    我正在尝试调用 JavaScript 方法WebBrowser WebBrowser webBrowser new WebBrowser webBrowser NavigateToString html webBrowser LoadCom
  • 如何使用 Jsoup 仅删除文本中的 html 标签?

    我想使用 JSOUP 从文本中仅删除 html 标签 我使用了这里的解决方案 我之前关于 JSOUP 的问题 https stackoverflow com questions 33466557 jsoup remove only html
  • 阻止 Firefox 在刷新后恢复先前用户输入的状态

    我有一个带有多个复选框的页面 需要表示数据库中的状态 这些复选框是 AJAX 驱动的 因此当选中一个复选框时 就会发送一个请求来更新数据库中的状态 如果他们的视图已过时 则受影响 相关复选框的视图将更新 并通知用户 并且必须重试 当我刷新时
  • 如何像这样包裹div?

    假设您有一个具有固定高度和重量的 div 在图中是最里面的一个 并且您希望周围的 div 包含它 其外边距为例如1 厘米 你会怎么做 一种方法是使用inline block显示风格 div border 1px solid blue div
  • 正则表达式替换“NO-BREAK SPACE”

    我正在寻找一个正则表达式来替换字符串中的 NO BREAK SPACE 有一些与 NO BREAK SPACE 相关的问题 但似乎没有一个问题能让我找到正确的答案 到目前为止 我尝试使用 字符串 AB 的第二个字符是不间断空格 但没有成功
  • 升级到 Angular v9 并启用 Ivy 后 Angular 编译失败

    我们最近将 Angular 应用程序升级到了最新版本的 Angular Angular v9 我们所有的依赖项也都升级了 ng update 表示我们所有的依赖项都 按顺序 当我们在启用 Ivy 的情况下构建应用程序时 编译过程会失败并出现
  • 分页打印所有数据

    我在打印数据表中具有分页的所有数据时遇到问题 我已经做过研究并在此链接中发现了同样的问题 仅打印 https stackoverflow com questions 468881 print div id printarea div onl
  • 使用 querySelectorAll 获取选定的选项

    我想知道是否可以在 Javascript 中获取当前选定的选项
  • 如何触发 Bootstrap Carousel 的轮播指示器

    我的代码有什么问题吗 我想触发当前的引导轮播幻灯片编号 我想在特定幻灯片时更改文本或执行一些 jQuery 命令 请看我的代码 document ready function myCarousel on slide bs carousel
  • 未捕获的语法错误:无法在“文档”上执行“querySelector”

  • 如何循环遍历并将值对添加到 JSON 对象?

    使用jQuery 选择框插件 https github com claviska jQuery SelectBox我正在尝试创建一个如下所示的 JSON 对象 其中 value and name 是选择框的值对 Opt Group 1 va
  • 需要哪些 HTTP 响应标头

    从服务器发送到客户端需要哪些 HTTP 响应标头 我致力于优化 HTTP 响应标头 以最大限度地减少 HTTP 响应开销 我知道 开销 有点夸张 但我喜欢干净的输出 我看到很多网站发送冗余的缓存标头等 e g 指定两者是多余的Expires
  • 在 Bootstrap 中的悬停中打开折叠选项卡

    我在 Bootstrap 中有折叠面板 单击选项卡标题即可打开该面板 我试图弄清楚如何使用鼠标悬停在选项卡的总宽度上来打开 但我没有得到它 下面是默认关闭的单个选项卡的代码 div class panel panel default sty
  • Select2 的行为与未为 Select2 定义的 Uncaught 查询函数非常不同

    我按以下方式加载 select2 的值 声明类型 var AdjustmentType Backbone Model extend url Hexgen getContextPath referencedata adjustmenttype
  • 获取 ES6 符号的描述

    我想知道是否有一种很好的方法来获取符号的描述 例如 var s Symbol 5 toString 的默认实现将简单地打印 符号 5 我想找到一种方法来提取实际描述 即 5 Symbol description https develope

随机推荐

  • 如何调试Roslyn编译生成的dll?

    我正在使用 Roslyn CSharpCompilation 为我的插件生成 dll 文件 文件具有 OptimizationLevel Debug 并生成 pdb 文件 接下来 我使用 Assembly Load 将这些文件加载 到我的程
  • 如何重写实体数据模型创建的对象上的 Equals?

    我创建了一个实体数据模型 它从 SQLite 数据库中提取记录 其中一个表是 People 我想重写 person Equals 方法 但我不确定去哪里进行这样的更改 因为 Person 对象是自动生成的 我什至看不到该 autogen 代
  • 单击按钮时更改照片

    import javax swing Icon import javax swing ImageIcon public class Stage1 extends javax swing JFrame int score 0 int iter
  • 遍历后加快数组查找速度?

    我有一个123MB大的int数组 它基本上是这样使用的 private static int data new int 32487834 static int eval int c int p data c 0 p data p c 1 p
  • file_get_contents:即使出现错误也能获得完整响应

    是否有可能使file get contents即使发生错误也显示实际响应 否则很难调试 例如 假设您有以下代码 url https api twitter com oauth request token data array options
  • 是否可以使静态控件透明?

    我正在尝试实现一个静态控件 该控件刷新 更改文本 以响应每秒发生一次的某个事件 由于我不想每秒绘制整个客户区域 所以我决定使用静态控件 现在的问题是父窗口被蒙皮 这意味着它有自定义位图作为背景 而静态控件没有适应 所以我正在寻找使静态控件的
  • ASP.NET > SqlServer;信任和授权

    我们有一个系统 客户希望集成 Windows 身份验证 这是一个 ASP NET 3 5 应用程序 连接到 Sql Server 2005 Web服务器是Server 2003 R2 SP2 数据库服务器是 Server 2003 SP2
  • Outlook 2007 接收 html 邮件作为带有标头的源,其他 MUA 工作正常。为什么?

    我有几个简单的表单 可以发送纯 html 电子邮件 大多数客户端 Gmail Lotus Notes 8 hotmail live windows live mail outlookexpress 都能正常接收电子邮件 但 Outlook
  • 在Java中,为什么equals()和hashCode()必须一致?

    如果我重写类上的任一方法 它必须确保如果A equals B true then A hashCode B hashCode也一定是真的 有人可以给我看一个简单的例子 如果违反了这一点 就会导致问题吗 我认为这与您是否使用该类作为 Hash
  • 在java中将HTML转换为RTF?

    我需要将 HTML 转换为 RTF 我正在使用以下代码 private static String convertToRTF String htmlStr OutputStream os new ByteArrayOutputStream
  • 使用可加载内核模块修改帧缓冲区(/dev/graphics/fb0)参数

    Problem 我必须配置 Android 平台使用的各种 LCD 显示器 几乎在所有情况下 都没有针对感兴趣的 LCD 显示器免费提供的电气规格 但通过经验和逆向工程 可以很好地猜测参数 我正在尝试使用可加载内核模块来微调显示参数 也欢迎
  • 用于从两台机器进行开发的 Git 存储库设置?

    我刚刚开始使用 git 对与 SVN 的工作流程差异印象深刻 但我遇到了一个结构 设置问题 文档似乎没有直观地解释如何设置 我想知道是否这甚至是可能的 我的设置是 我有几台计算机 台式机和笔记本电脑 进行开发 因此 为了更轻松地保持同步并为
  • 为什么更新外键后引用约束会不一致?

    抱歉 这个模糊的标题很难用一句话来描述 我有 2 个实体User and UserAddress 其中 User 有 2 个外键DefaultInvoiceAddressId and DefaultDeliveryAddressId和 Us
  • 如何在git中返回到之前的版本

    我的工作站中有一个远程 git 存储库的签出副本 我不小心在本地进行了更改并推送到了远程 现在我想删除最后一次提交并返回到上一次提交 并且应将其推送到远程 如果这是带有提交消息的新提交 我没问题 怎么做 我建议不要用 force 推动另一种
  • Coldfusion 2018 vs 11,Centos 6 vs 7,符号链接的处理

    我得到不同的输出getCurrentTemplatePathCentos 7 上的 CF2018 与 Centos 6 上的 CF 11 path to folder包含一个符号链接v1这指向 path to v1 使用 DocumentR
  • 在 Woocommerce 结帐页面上移动亚马逊按钮

    我需要移动 Woocommerce 结账页面上的 Amazon Pay 消息 按钮 我们正在使用Woocommerce 的亚马逊支付 https woocommerce com products pay with amazon 当我查看插件
  • Makefile:多个目标的相同规则

    我有一些目标 比方说 3 个 所以在makefile运行之后 我想要3个可执行文件 这是我现在所做的 CC gcc CFLAGS Wall pedantic ansi ECHO server echo ECHO O echo o FOO s
  • mod_rewrite 和 RewriteRule 阻止我添加错误页面

    我有这个 htaccess文件 但我需要有一个 404 错误页面 但是当我向其中添加 ErrorDocument 时 我什么也没做 如果我写localhost 8888 home somepage there not exist
  • 在 Javascript 中隐藏按钮

    在我最新的程序中 有一个按钮 单击时会显示一些输入弹出框 这些框消失后 如何隐藏按钮 You can set its visibility财产 http www w3schools com cssref pr class visibilit
  • 通过标记或JS强制下载

    假设我在 CDN 来自 Rackspace 的云文件 上有一个文件 以及一个包含该文件链接的静态 html 页面 有什么方法可以强制下载此文件 以防止它在浏览器中打开 例如 mp3 我们可以让我们的服务器读取该文件并将相应的标头设置为 he