3

公開してアクセスしたくないので、データベースにアップロードしたexeファイルがいくつかあります。リンクボタンと汎用ハンドラーを使用して、次のコードを使用してファイルを提供してみました。

Context.Response.Clear()
Context.Response.ContentType = "application/exe"
Context.Response.AppendHeader("Content-Disposition", "filename=program.exe")
Context.Response.BinaryWrite(binaryfile)

問題:Google Chromeは、ダウンロードを他のexeとして処理しません。代わりに、ダウンロード後に「program.exeは一般的にダウンロードされないため、危険である可能性があります」と報告します。「破棄」ボタンとダウンロードを「保持」するオプションを使用すると、コンテキストメニューの下に非表示になります。

データベースに保存されているexeファイルを提供する他の/より良い方法はありますか?

4

3 に答える 3

4

application/exe野生ではあまり見かけません。application/octet-stream実行可能ファイルに使用するのがより一般的です。

.NETを使用している場合は、IISを使用していると仮定します。(そうでない場合は訂正してください。)そうである場合は、この(古いがまだ有用な)MIMEタイプとファイル拡張子のリストが役立つ場合があります。

当然のことながら、実際の意味でサーバー側からブラウザー側の制限を回避することはできません。クライアントに送信するヘッダーを変更できますが、最終的には、応答をどう処理するかはクライアント次第です。

于 2012-05-15T18:27:28.603 に答える
3

この質問をチェックしましたか: Chromeの悪意のあるファイルの警告を回避する

Jeff Gは、Googleウェブマスターツールにサインアップしてサイトを追加することを提案しています。Googleがサイトをクロールして情報を入力するまでには数日かかりますが、最終的にはファイルが悪意のあるものであるとは見なされなくなります。

于 2012-05-15T18:27:39.730 に答える
1

私の場合、次の一連のヘッダーで解決しました。

Cache-Control: max-age=864000
Content-type: application/octet-stream
Content-Disposition: attachment; filename="....zip"
Content-Transfer-Encoding: binary
Last-Modified: ...
Etag: ...
Content-Length: ...

Content-type、Cache-Control、Last-Modified、および Etag に特に注意してください。これらは、私にとって役立つヘッダーであると思われます。

于 2014-12-22T11:29:29.697 に答える