我想将现有数据导出到csv文件中.我尝试使用以下代码:
var uriContent = "data:text/csv;charset=utf-8," + encodeURIComponent(data);
var myWindow = window.open(uriContent);
myWindow.focus();
它可以工作,但是我可以设计文件名.我只能获得名称不明的对话框,例如“ MVeAnkW8.csv.part”.
如何在第一个对话框中分配文件名?提前致谢.
更新:
我现在正在使用滑轨.实际上,我在服务器端名称export_to_csv中有一个方法.在此方法的最后,我使用如下代码:
send_data(csv_string,
:type => 'text/csv; charset=utf-8;',
:filename => "myfile.csv")
它可以工作,我可以指定文件名.
现在,我想使用ajax来获取更多的csv文件(这就是我要使用javascript的原因,因为普通的http请求只能获取一个文件进行下载).
我使用这样的js代码:
$.post("export_to_csv",
function(data) {
var uriContent = "data:text/csv;charset=utf-8," + encodeURIComponent(data);
var myWindow = window.open(uriContent);
myWindow.focus();});
它从服务器端获取数据,我尝试将其传输到csv中.我可以获取文件,但无法指定文件名.
解决方法:
据我所知,您只能在chrome 14中指定文件名.
看一下这个问题:Is there any way to specify a suggested filename when using data: URI?
更新!
如果要“一次”下载多个csv文件,则可以将它们压缩在一起,或将每个文件分别保存在服务器上(每个文件现在都有指向它的网址-如果将它们放在“ www”文件夹中) .
然后通过ajax将文件名及其路径/ URL发送给客户端(例如,使用json编码的列表).
在ajax回调函数中:获取文件列表,并在单独的弹出窗口中打开每个文件URL.