2012-01-07 90 views
4

我有一个GZipped JavaScript文件,我使用data:URI进行编码。如何强制下载的压缩数据URI的文件扩展名?

例如:

<a href="data:application/x-gzip;base64,FOO">My Javascript File</a> 

当用户右击并保存该文件(在Chrome)我想生成的文件名是download.js.gz。这样,当用户双击该文件(在Mac OS X中)时,它将被正确地解压缩并重命名为download.js,并且他们可以轻松查看内容。

问题是,当我使用内容类型text/javascript(或application/x-javascript)时,文件被保存为download.js。当我使用内容类型application/x-gzip时,文件被保存为download.gz

有什么办法可以将文件保存为.js.gz

这里有两个环节的工作示例:http://jsfiddle.net/xYm8w/3/

该文件必须是一个数据的URI,而不是实际文件的链接。我试图更改<a>标签之间的文本,但它根本不影响任何内容。

+0

重复此:http://stackoverflow.com/questions/283956/is-there-any-way-to-specify-a-suggested-filename-when-using-data-uri – 2012-01-09 08:33:36

回答

4

除了Chrome之外,似乎没有办法在浏览器中执行此操作。因此,我能想到的最佳选择是通知用户正常保存文件(以便它会根据内容类型自动插入适当的扩展名),然后让它们进入查找程序并重命名该文件以附加“ .gz'扩展名。

但在Chrome上,您可以使用<a>标记的download属性(我通过this answer发现了该属性)。示例:http://jsfiddle.net/pYpqW/

+1

正确。根据规格(http://www.ietf.org/rfc/rfc2397),没有办法指定文件名。数据网址将被视为数据流 - 而不是文件。 – 2012-01-09 08:31:09

相关问题