2

ユーザーが CSV/Excel ファイル ([保存先] ダイアログを含む) をダウンロードできる ASPX Web サイトを構築しています。CSV には暗号化されたデータが含まれています。復号化キーはユーザー側で利用でき、Web サービスに対して秘密にしておく必要があります。そのため、復号化は実際にはブラウザー内で実行する必要があり、javascript 実装 (sjcl) が正常に動作することが証明されています。しかし、ファイルのダウンロード中に入ってくるデータストリームはどのように影響を受けるのでしょうか? JavaScriptの復号化を実行するブラウザがホストするプロキシのようなものですか?

@closure:どうもありがとう!Ajax は問題ありません。

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

非常にクールですが、2 つの問題があります。IE では機能しないようです。また、非常に巨大なテーブルには適切なアプローチではありません。このソリューションは、何千ものレコードを処理できる必要があるため、何らかのダウンロード ストリーム エンコーダー/デクリプターが必要です。

4

1 に答える 1

5

これを達成するための手順は次のとおりです。

  1. CSV をクライアント マシンに直接ダウンロードする代わりに、ajax 経由でフェッチします。
  2. データが Ajax 経由で受信されたら、インターネットで利用可能な多くの機能を使用して CSV を解析します。これについて助けが必要な場合はお知らせください。この関数は、CSV をネイティブ Javascript 配列に変換します。
  3. 配列をウォークスルーし、暗号化されたデータを暗号化されていないデータに変換します。同じ配列でネイティブに実行します。
  4. 配列をCSVに変換します(ここでもパブリックドメインに関数があります)
  5. リンク(要素)を作成し、hrefを次のようなローカルデータに設定しますdata:text/csv;charset=utf-8, + encodeURIComponent(csv)
  6. このリンクをユーザーに提示し、クリックしてファイルをローカルに保存するように依頼します。
于 2012-12-22T17:58:21.693 に答える