允许用户将html列表的内容保存到文本文件中

时间:2010-12-02 04:19:46

标签: c# javascript asp.net vb.net text-files

我正在开发一个应用程序(ASP.NET,Webforms),它根据用户输入生成输出列表。我想允许用户将所述列表的内容保存为文本文件,或者可能保存为其他文件类型,例如.csv。解决这个问题的最佳方法是什么?可以使用Javascript在客户端完成吗?

2 个答案:

答案 0 :(得分:2)

我认为您需要使用ActiveXJava AppletsSilverlight来做类似的事情。 JavaScript无权访问本地文件系统。

另一种方法是在服务器上(物理上或在运行中)创建一个文件,并使其可供下载给用户。这将使他成为保存文件对话框。

要动态执行此操作,请创建一个空白页面(没有任何标记。甚至没有),设置Response.ContentType = 'text/plain'并使用Response.Write()Page_Load中编写您的内容。

答案 1 :(得分:1)

您可以通过构建和打开data URI来纯粹在客户端JavaScript中生成纯文本或csv文件。

使用jQuery的示例:

window.open(
    'data:text/csv;charset=utf-8,' + 
    escape(
        $('#yourlist li') // <- selector for source data here
            .map(function(){
                // format row here
                return $(this).text();
            })
            .get()
            .join('\r\n')
    )
);

不幸的是,由于IE8和安全限制一旦IE added support for data URIs之前缺少数据URI支持,这种技术在IE中将无法运行。您必须使用IE的替代技术,再次访问服务器或使用ActiveX / Silverlight / Flash / Java Applet来避免可能已经在客户端上的数据往返。