57

a-href ファイルのダウンロードにファイル名を割り当てる方法を教えてください。

<a href="http://localhost:8080/couch/getFile?dbName=xxx&file=test.xml">get-file</a>

右クリックして名前を付けて保存: バックグラウンドで実行されているサービスは test.xml コンテンツを返し、ユーザーはそれをローカルに保存できます。ただし、ここでは毎回、ユーザーが保存するファイル名を入力する必要があります。代わりに、test.xml を取得することを考えています。ダウンロード ファイル名として "test.xml" を使用するようブラウザに指示する方法を教えてください。

HTTP 応答にヘッダーを設定すると機能しますか? もしそうなら、どうすればそれができるか教えてもらえますか?

4

3 に答える 3

100

HTTP 応答ヘッダー「Content-Disposition」を追加する必要があります

Response.AppendHeader("content-disposition", "attachment; filename=\"" + fileName +"\"");
于 2012-11-09T12:28:37.900 に答える
33

HTTP ヘッダーContent-Dispositionを使用すると、ファイル名を提案できます。

Content-Disposition 応答ヘッダー フィールド […] を使用して、応答ペイロードをローカルに保存するときに使用するファイル名など、追加のメタデータを添付できます。

BNFを見ると、ファイル名が次のように指定されていることがわかりますquoted-string

引用文字列 = ( <"> *(qdtext | 引用ペア ) <"> )

これは有効な例です。

Content-Disposition: attachment; filename="fname.ext"

一重引用符'は無効であることに注意してください。ファイル名に引用符 (") を含める必要がある場合は、". ただし、RFC-6266 は、引用符を含めないようにすることを提案しています

一部のユーザー エージェントではエスケープが実装されておらず、"" は不正なパス文字と見なされる可能性があるため、ファイル名パラメーターの引用文字列形式に "" 文字を含めないでください。

于 2015-08-12T22:20:53.797 に答える