【发布时间】:2013-03-19 16:35:28
【问题描述】:
我不知道这是否一定很重要,但我正在使用 Infragistics iggrid 为我的网格和他们的报告内容导出为 PDF。
我遇到的根本问题是我要导出的数据在浏览器中,我希望不必创建服务器端文件来下载。我们在屏幕上有一个图标,用户单击该图标即可下载 PDF。
所以我在客户端上做的是收集所有数据。这必须在客户端完成,因为我想在用户对其进行排序、过滤和列排序时导出数据(否则我可以只收集服务器端的数据,这会使这更简单)。然后我通过 POST 将数据发送到服务器。
在服务器端,我生成 PDF 文件。现在,显然,我可以保存 PDF 服务器端并重定向到生成的文件,但这增加了我希望避免的临时文件的维护(但最坏的情况是,我可以去那里。现在只是寻找选项) .
我尝试返回base64编码的数据库然后做:
window.open("data:application/pdf;base64," + encodedData);
这不起作用(至少在 IE 中),因为 URL 限制有点超过 2K。
我在这里尝试使用 downloadDataURI javascript 函数:http://code.google.com/p/download-data-uri/
但这似乎只适用于 Chrome(即使在注释掉 webkit 检查之后),我显然不够聪明,无法弄清楚原因。
我确定我错过了一些不需要创建服务器端文件的明显可能性,但我只是没有看到它。 (免责声明:我女儿今天早上把我吵醒了,所以答案可能真的很琐碎,明天当我的大脑工作时我会觉得很愚蠢)。
【问题讨论】:
标签: javascript asp.net-mvc asp.net-mvc-4 infragistics iggrid