【问题标题】:Is there a way to suggest a download path within a web application?有没有办法在 Web 应用程序中建议下载路径?
【发布时间】:2020-09-19 19:23:23
【问题描述】:

考虑以下情况:

在我的网页中,我有两个链接用于下载两个不同的文件,一个用于a.css,一个用于a.js

CLIENT_AAA 更喜欢将a.css 文件下载到/path/to/css/ 文件夹,并将a.js 文件下载到他特定计算机中的/path/to/js/ 文件夹。 CLIENT_BBB 可能会使用不同的文件夹,但这超出了我们的范围。

问题是当该用户保存a.js 然后下载a.css 时,浏览器(在我的例子中是Chromium)建议将新文件下载到/path/to/js/ 文件夹,因为这是用于下载的最后一个文件夹。用户需要点击向上,选择css文件夹,然后保存文件。

我想知道我是否可以“建议”浏览器为该用户的每个链接提供一个有效的下载文件夹,所以当用户点击 <a href="a.css" download>a.css</a> 时,浏览器将打开 /path/to/css 文件夹,当用户点击 <a href="a.js" download>a.js</a> 时,它将打开/path/to/js 文件夹。这可能吗?

【问题讨论】:

  • 好的。如果您将评论移至某个答案,我愿意接受。
  • 是的,因为我想到了要添加的其他内容。
  • 一种想法是将它们压缩在一起,并且只为两者提供一个下载链接
  • 除了@Pointy 已经写的内容之外,您还必须考虑到您不知道客户端文件夹树,因此您如何建议保存文件的路径?无论您想建议什么,都将基于您对访问者文件夹树的假设。
  • @charlietfl 目前我正在采用类似的方法:我将文件放在我想要的任何层次结构的 zip 文件中,然后建议用户始终将其下载到同一个位置(目标项目),然后通过覆盖任何现有文件来提取内容。这样,用户只需在下载文件夹的单独终端中运行watch "unzip -o foo.zip && rm foo.zip" 命令即可使用相同的文件夹进行下载。

标签: javascript html download chromium


【解决方案1】:

这完全取决于浏览器。没有 HTTP 标头可以满足您的要求。您可以在 Content-Disposition 中指定文件名,仅此而已。

考虑一下,如果您可以将浏览器推向特定路径,并且浏览器会按照您的建议进行操作,那么坏人会创建下载,用他们想要的任何内容覆盖系统文件。当然,人们仍然可以对自己这样做,但是让服务器将浏览器定向到特定的完整路径将是一个严重的安全问题。

【讨论】:

  • 正确,可能是安全漏洞。
猜你喜欢
  • 2023-02-17
  • 2011-03-28
  • 2019-07-11
  • 2013-08-05
  • 2014-07-04
  • 2010-09-14
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
相关资源
最近更新 更多