可以在javascript中生成文件并提示用户下载?

时间:2009-10-29 10:12:21

标签: javascript

是否可以在javascript中生成文件然后提示用户下载?

我们真正想做的是:我们想制作一个小的html表单,用户可以在表格中编辑值,我们希望能够从表单生成一个csv文件并提示用户将其保存在硬盘上。它是否可以在纯JavaScript中?如果没有,有任何解决方法吗?

注意:我知道我可以通过往返服务器,发送表单并获取csv文件来解决这个问题,但这里的诀窍是没有服务器,html表单只会生成一个硬盘。

3 个答案:

答案 0 :(得分:1)

如果没有要下载的服务器,则无法让他们像平常一样下载数据。

您可以将csv数据输出到新的浏览器窗口,然后用户可以保存它。

答案 1 :(得分:1)

如果您不介意使用闪光灯,建议您使用Downloadify。您将使用javascript内容生成代码托管downloadify.swf

易于整合。这是来自提供的sample web site

的剪切和粘贴
<script type="text/javascript">
  Downloadify.create('downloadify',{
    filename: function(){
      return document.getElementById('filename').value;
    },
    data: function(){ 
      return document.getElementById('data').value;
    },
    onComplete: function(){ 
      alert('Your File Has Been Saved!'); 
    },
    onCancel: function(){ 
      alert('You have cancelled the saving of this file.');
    },
    onError: function(){ 
      alert('You must put something in the File Contents or there will be nothing to save!'); 
    },
    transparent: false,
    swf: 'media/downloadify.swf',
    downloadImage: 'images/download.png',
    width: 100,
    height: 30,
    transparent: true,
    append: false
  });
</script>

答案 2 :(得分:0)

在纯JavaScript中,没有。

您需要一个服务器端脚本来生成文件并将其临时保存/存储在内存中,然后向用户提供强制下载对话框。

建议您使用Fungus的路线并使用javascript将其写入浏览器窗口,然后指示用户如何保存它(复制&gt;粘贴...等)。

干杯,肖恩

相关问题