web-dev-qa-db-ja.com

hrefリンクのInternet Explorerでダウンロードする代わりにファイルが開きます

<a href="path/to/file/filename.xxx" download="filename.xxx">filename</a>'

リンクをクリックすると、filename.xxxがダウンロードされます。

クロムで完全に動作します。ただし、Internet Explorerでは、ダウンロードする代わりにファイルを開きます。何が問題なのでしょうか? IEで動作させるために追加するプロパティはありますか?.

また、すべてのブラウザで機能するファイルダウンロードサンプルも必要です。

23

download属性は、IE( http://caniuse.com/# search = download%20attribute )。

これは、ダウンロード属性がFirefox、Chrome、operaおよびblackberryのブラウザの最新バージョンでのみサポートされていることを示唆しています。

他のブラウザでは、より伝統的な方法を使用して強制的にダウンロードする必要があります。つまり、適切なContent-TypeヘッダーとContent-Dispositionヘッダーを設定して、ブラウザーにアイテムをダウンロードするよう指示する(または視点に応じてトリックする)にはサーバー側コードが必要です。ヘッダーは次のようになります。

Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"

(ヘッダーのコピーと貼り付けを行ったantyratに感謝します)

18
Chris

サーバー側で修正する必要があります。サーバーは、このファイルタイプに対してこのヘッダーを返す必要があります。

Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
10
antyrat

これはコードの問題ではありません。それはデフォルトですIE settings

always open」設定を変更するには:

  1. Windowsエクスプローラーで[ツール]メニューをクリックし、[フォルダーオプション]を選択します
  2. 表示されるウィンドウで、[ファイルの種類]タブをクリックし、変更するファイル拡張子が見つかるまで(アルファベット順に)リストをスクロールします。たとえば、Internet Explorerが常に.Zipファイルを開こうとする場合、「Zip」のエントリが見つかるまでリストをスクロールします。
  3. ファイルタイプをクリックしてから、「詳細」ボタンをクリックします。
  4. [ダウンロード後に確認]ボックスをオンにして、[OK]> [閉じる]をクリックします。

編集:コードを変更する代わりに、次のテキスト「Internet Explorerユーザー:ファイルをダウンロードするには、「Rightclick」リンクをクリックして「Save target as」をダウンロードしますファイル。」

編集2:このソリューションは完璧に機能します。その解決策は、他の回答からコピーしたばかりです。私は自分のものとしてそれを偽装しようとしていない

Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"

ただし、許可するファイルのタイプを必ず指定する必要があります。投稿で、あらゆる種類のファイルに対してこれが必要であると述べています。これが問題になります。

例えばサイトに画像があり、エンドユーザーがこれらの画像をクリックすると、新しいページで開くのではなく、コンピューターにダウンロードされます。わかりました。そのため、ファイル拡張子を指定する必要があります。

1
AnaMaria

Apache2サーバーの場合:

AddType application/octect-stream .ova

ファイルの場所はApache2の特定のバージョンに依存します-私たちのものは/etc/Apache2/mods-available/mime.confにあります

参照:

https://askubuntu.com/questions/610645/how-to-configure-Apache2-to-download-files-directly

1
gerardw

これはhttpヘッダーの問題でなければなりません。

ここを参照してください: ファイルダウンロードのHTTPヘッダー

サーバーは、送信してファイルをダウンロードするようブラウザに指示する必要があります

Content-Type: application/octet-stream; 
Content-Disposition: attachment;

ヘッダーに

0
Armel Larcier

ファイルを圧縮(.Zip)すると、IEはユーザーにファイルを開くかダウンロードするオプションを提供します。

0
Jason

Internet Explorerでの既知のHTTPヘッダーの問題です。サーバーの.htaccessファイル(Apacheを使用する場合)および次のルールを含めます。

# IE: force download of .xxx files
AddType application/octect-stream .xxx
<Files *.xxx>
  ForceType application/octet-stream
  Header Set Content-Disposition attachment
</Files>
0
bodi0