2

我正在构建一个 ASPX 网站,该网站应该允许用户下载 CSV/Excel 文件(包括“保存到”对话框)。CSV 包含加密数据 - 解密密钥在用户端可用,并且应该对 Web 服务保密。所以解密实际上应该在浏览器中执行,一个javascript实现(sjcl)已经证明可以正常工作。但是如何影响文件下载过程中的传入数据流呢?类似于执行 javascript 解密的浏览器托管代理?

@closure:非常感谢!Ajax没问题,思路

<a href='data:application/csv;base64,aGVsbG87d29ybGQNCg=='>click</a>

真的很酷,但它有两个问题:它似乎不适用于 IE,而且对于非常大的表来说,这不是正确的方法。该解决方案应该能够处理数千条记录,因此我们需要某种下载流编码器/解密器。

4

1 回答 1

5

以下是实现此目的的步骤:

  1. 不是直接将 CSV 下载到客户端计算机,而是通过 ajax 获取它
  2. 通过 Ajax 接收数据后,通过 Internet 上的许多可用功能解析 CSV。如果您需要这方面的帮助,请告诉我。此函数会将 CSV 转换为原生 Javascript 数组。
  3. 遍历阵列并将加密数据转换为未加密数据。在同一个数组中进行本机操作。
  4. 将数组转换为 CSV(公共域中同样有函数)
  5. 创建一个链接(一个元素)并将 href 设置为本地数据,例如data:text/csv;charset=utf-8, + encodeURIComponent(csv)
  6. 将此链接呈现给用户并让他单击它以在本地保存文件。
于 2012-12-22T17:58:21.693 回答