0

私のウェブサイトでExcelファイルを開くと、何年もかかるユーザーがいます。単純に名前を付けて保存してから開くと、すばやく実行できます。彼らは他のサイトでも同じ問題を抱えているので、それは彼らの問題です. ただし、ブラウザに保存のみを提供し、開くことを提供しないようにする方法はありますか?

ここに記載されているように: ブラウザー ウィンドウで開くのではなく、ユーザーに href リンクからファイルをダウンロードさせる方法はありますか? そしてここ: 私が現在使用しているPHPを使用してファイルを強制的にダウンロードする:

 Response.ContentType = "application/ms-excel";
 Response.AddHeader("content-disposition", "attachment; filename=Report.xlsx");
 Response.AddHeader("Content-Length", new System.IO.FileInfo(fileName).Length.ToString());

しかし、これはまだオープンオプションを提供しています.

これを強制する方法はありますか、それとも単にユーザーのブラウザ設定に依存していますか?

4

2 に答える 2

2

別のコンテンツ タイプ (アプリケーション/オクテット ストリーム) を送信するだけです。

Response.ContentType = "application/octet-stream";

この方法では、ブラウザーは形式を認識せず、ファイルの保存を提案するだけです。

- - 編集 - -

今日、私はおそらくあなたの問題を解決する別のヘッダーフィールドを知りました:

"X-Content-Type-Options: nosniff"

説明: 「定義されている唯一の値 'nosniff' は、Internet Explorer が宣言されたコンテンツ タイプから離れた応答を MIME スニッフィングするのを防ぎます。これは、拡張機能をダウンロードするときに Google Chrome にも適用されます。[31]」

( http://en.wikipedia.org/wiki/List_of_HTTP_header_fields )

于 2012-08-15T16:39:26.293 に答える
0

質問はかなり古いですが、私は答えるつもりです...

IE8/9 と Chrome の場合、これはうまくいきました:

Response.AddHeader("X-Download-Options", "noopen");
于 2013-04-26T09:28:20.820 に答える