这很疯狂,但我不知道如何做到这一点,而且由于这些词有多常见,很难在搜索引擎上找到我需要的东西.我认为这应该是一个容易回答的问题.
我想要一个简单的文件下载,它会像这样做:
<a href="file.doc">Download!</a>
Run Code Online (Sandbox Code Playgroud)
但我想使用HTML按钮,例如以下任何一种:
<input type="button" value="Download!">
<button>Download!</button>
Run Code Online (Sandbox Code Playgroud)
同样,是否可以通过JavaScript触发简单下载?
$("#fileRequest").click(function(){ /* code to download? */ });
Run Code Online (Sandbox Code Playgroud)
我绝对不是在寻找一种方法来创建一个看起来像按钮的锚,使用任何后端脚本,或者混淆服务器头或mime类型.
什么是最好的跨浏览器方式来打开下载对话框(假设我们可以设置内容处置:标题中的附件)而无需导航离开当前页面,或打开弹出窗口,这在IE6中无法正常工作.
鉴于https://www.example.com/image-list:
...
<a href="/image/1337">
<img src="//static.example.com/thumbnails/86fb269d190d2c85f6e0468ceca42a20.png"/>
</a>
<a href="//static.example.com/full/86fb269d190d2c85f6e0468ceca42a20.png"
download="1337 - Hello world!.png">
Download
</a>
...
Run Code Online (Sandbox Code Playgroud)
这是一个用户脚本环境,因此我无法访问服务器配置.因此:
https://static.example.com/full/86fb269d190d2c85f6e0468ceca42a20 - 1337 - Hello World!.png.www.example.com和static.example.com由CORS壁由设计分离.当用户点击"下载"链接时,如何使Firefox和Chrome显示" 将文件另存为"对话框,其中包含建议的文件名"1337 - Hello world!.png"?
经过一些失败和谷歌搜索,我学到了这些问题:
download了某些图像MIME类型上属性的存在.download了跨站点链接上属性的存在.download了跨网站链接上的属性值.所有这些观点对我来说都没有任何意义,所有这些看起来都像是"让我们对这个特征进行随机的非感性限制",但我必须接受它们,因为这是我的环境.
有办法解决问题吗?
背景:我正在为使用MD5哈希作为文件名的图像板编写用户脚本.我希望用户友好的名称更容易保存.让我更接近这一点的任何事情都会有所帮助.
我想我可以通过使用blob的对象URL和带有被攻击的CORS头的本地代理来解决这些限制,但这种设置显然是不合理的.通过画布保存可以工作(在这种情况下,CORS的图像是"受保护"吗?),但它会强制进行双重有损压缩或有损无损转换,给定JPEG文件,这些都不是好的.
我想在我的网页上托管一个包含mp3文件的外部网址.问题是,点击该链接会打开播放器,我必须点击右键,以下载文件"链接另存为".有没有强制文件下载的解决方案?
我不想下载该文件,然后使用标头强制下载.
<a download='file' href="https://tinyjpg.com/images/social/website.jpg">
Download
</a>Run Code Online (Sandbox Code Playgroud)
有没有办法强制下载文件而不是在新窗口中打开文件?现在,如果文件是一个URL,就像下面的例子一样,它将不会被下载,并将在一个新窗口中打开.
谢谢