0

バックボーン モデルに BASE64 でエンコードされたファイルがあります。

次のようになります ( console.log(model.toJSON());):

Attachments: Array[1]
    0: Object
        Content: "JVBERi0xLjQKJeLjz9MKMSAwIG9iaiA8PC9UeXBlL..."
        ContentLength: 29512
        ContentType: "application/octet-stream"
        Name: "Notification.pdf"

これをクリック イベントでの強制ダウンロードとしてブラウザに送信するにはどうすればよいですか? これを行うためにサーバーに戻るのは避けたいです。

ありがとう

4

1 に答える 1

0

いくつかの異なるオプションがあり、すべてデータURIが関係しています。

クイックダウンロードを実行したいだけで、ファイル名が何であるかを気にしない場合は、JSに次のことを実行させることができます。

window.location = 'data:application/octet-stream;base64,JVBERi0xLjQKJ...';

ただし、ダウンロード用のファイル名を指定できるようにする場合は、新しいHTML5機能と<a>タグにフォールバックする必要があります。

var a = document.createElement('a');
a.href = 'data:application/octet-stream;base64,JVBERi0xLjQKJ...';
a.download = 'Filename.pdf';
a.click();

これは古いブラウザで機能しますが、download属性はHTML5で新しいため、適切なファイル名なしでファイルをダウンロードします。

于 2013-03-03T21:25:07.560 に答える