2016-03-30 11 views
2

私はwindow.locationを使用して画像をダウンロードしています。私はいくつかの他の質問を見てきましたが、彼らは私が「ドンdownloadのattrを示唆ダウンロードするwindow.locationを使用するときにファイル名を変更します。

window.location = data.url; 

:私は、サーバー上の画像を生成し、バックダウンのように見えるので、それを送るので、それはHTMLではありませんHTMLが存在しないため、持っていません。

ファイル名を変更する方法はありますか?

答えて

2

フロントエンドソリューション

をユーザーがこのリンク、ブラウザ軍のダウンロードをクリックし、保存するとき

<a href="my_file.pdf" download="very_important_report.pdf">Download</a> 

download属性で<a>要素をHTMLにコードを変更指定されたファイル名を持つファイルthis postで詳細を読むことができます。全く新しい機能ですので、browser supportを確認してください。

バックエンドソリューション

あなたは、サーバー側のコードを変更することができる場合RFC 2183で定義されている、あなたはcontent-dispositionヘッダーを使用する必要があります。

content-disposition: attachment; filename=very_important_report.pdf 
+0

私は '私は' HTML'を '$( "").submitのようなものを()を作成し、JSとを経由して、それをトリガーしますか? – PourMeSomeCode

+0

残念ながらそれは不可能です。安全上の理由から、ユーザーの介入なしにリンク上で「クリック」を効果的にトリガーすることはできません。 –

+0

@PourMeSomeCodeは私の答えでした。 –

2

クライアント側でファイル名を変更することはできません。あなたはサーバー上でそれを行う必要があります。

あなたはこのような(サーバー側)コンテンツ-dispositionヘッダーを設定できます。あなたは、フロントエンド側で行うことができる唯一のことはしている

Content-Disposition: attachment; filename="yourname.gif" 
関連する問題