0

Firefox で下記 URL からファイル (Eclipse の win32 zip) をダウンロードすると、ファイル名はeclipse-jee-juno-SR1-win32.zip.

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR1/eclipse-jee-juno-SR1-win32.zip&url=http://download.eclipse.org/technology/epp/downloads/release/juno/SR1/eclipse-jee-juno-SR1-win32.zip&mirror_id=1

ただし、このファイル名はContent-dispositionヘッダーで指定されません。これは、サーバーが提案するファイル名を取得する標準的な方法です。

ここで、Eclipse のダウンロードは単なる例です。ファイル名が URL の一部になっているようですが、ファイル名を取得する別の方法はありますか? この場合、正規表現を使用して URL からファイル名を抽出できますが、Content-disposition ヘッダーがないすべての URL の一部であるとは限りません。

質問: Content-disposition ヘッダーが存在しない場合、ダウンロードのファイル名を取得するにはどうすればよいですか? または、よりローカライズされた、Firefox はどのようにして前述の名前を思いついたのでしょうか?

それとも、Firefox は単純にここで URL を解析しているのでしょうか。私は、間接的なスクリプト配信のダウンロードからファイル名を抽出したにもかかわらず、たまたま機能するケースに出くわしたことがありますか?

4

1 に答える 1

1

Content Disposition は、サーバーがファイル名を提案する標準的な方法です。content disposition ヘッダーがない場合、ファイル名を考え出すのは完全にクライアント次第です。最も一般的なオプションは、パスの最後のセグメントを取ることです。

コンテンツ ディスポジション ヘッダーがない場合、サーバーは URL を表示するのではなく、ファイルにダウンロードするように指示することさえありません。ほとんどのブラウザは、表示できないものをファイルとして保存するようにデフォルト設定されているだけです。

于 2012-11-17T23:47:13.697 に答える