我想知道是否有可能使浏览器的行为方式与它看到"Content-disposition: attachment;filename=...“时的行为方式相同。只使用客户端javascript?这意味着要保存的文件的数据仅在客户端可用。
也就是说,假设我们有一个javascript数组,仅在客户端,
var data = [
["aa","bb","cc","dd","ee","ff","gg","hh","ii"]
[ 1, 2, 3, 4, 5, 6, 7, 8, 9],
..
];我想将这个数组作为文本文件保存到用户的计算机上。必须提示用户输入文件名(即我不会试图绕过浏览器的安全设置或其他类似设置)。
在不将数组存储到服务器的临时文件并再次请求将此临时文件返回给用户的情况下,这是可行的吗?如果这个问题没有简单的答案-任何想法,谷歌关键字或链接非常感谢。
发布于 2011-04-08 05:02:51
你不能用一个纯粹的JavaScript解决方案来做到这一点--你需要让来自服务器的文件推送。
但是你不需要在服务器上有一个“物理”文件来完成这个任务。您可以将数据字符串存储在内存中,并从内存写入响应流。但是,如果不告诉我们您正在使用的服务器端技术,您将无法获得有关如何做到这一点的更详细的答案。
发布于 2011-04-08 05:04:04
AFAIK,你不能使用Javascript以任何一种跨浏览器的方式很好地做到这一点。
如果你真的不想使用服务器,你可以用Flash做一个混合解决方案。从本质上讲,你可以制作一个自定义的Flash控件,你可以通过Javascript (ExternalInterface)与它通信,然后Flash控件就会启动“文件保存”操作。
这里有一篇关于这个主题的文章:Save a file locally with Flash Player 10
发布于 2012-04-13 23:54:05
看看dowloadify:它使用了@Adam建议的技术。
https://stackoverflow.com/questions/5587545
复制相似问题