我正在开发一个应用程序(ASP.NET,Webforms),它根据用户输入生成输出列表。我想允许用户将所述列表的内容保存为文本文件,或者可能保存为其他文件类型,例如.csv。解决这个问题的最佳方法是什么?可以使用Javascript在客户端完成吗?
答案 0 :(得分:2)
我认为您需要使用ActiveX
或Java Applets
或Silverlight
来做类似的事情。 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来避免可能已经在客户端上的数据往返。