HTTP圧縮
HTTP圧縮の問題
一部のユーザーは、IISでHTTP圧縮を構成すると、生成されたファイルをクライアントブラウザに送信する際にエラーが発生すると報告しています。
説明
ブラウザーをファイルを開くように強制するために、“Content-disposition”, “inline; filename=test.xls”ヘッダーを使用し、“Content-disposition”, “attachment; filename=test.xls”ヘッダーを使用して保存ダイアログを開き、Microsoft Excelを使用してファイルを開くために使用しています。 ただし、いくつかの例外が存在することに注意してください。
例外
Asposeのバグでないことを確認するために、次のコードを使用できます。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
FileStream fs1 = new FileStream(path + "\\KnowledgeBase\\SampleData.xlsx", FileMode.Open, FileAccess.Read); | |
byte[] data1 = new byte[fs1.Length]; | |
fs1.Read(data1, 0, data1.Length); | |
this.Response.ContentType = "application/xls"; | |
Response.AddHeader("content-disposition", "inline; filename=book1.xls"); | |
Response.BinaryWrite(data1); | |
Response.End(); |
解決策
この問題を解決するために、次のワークアラウンドのいずれかを使用できます:
- 指定されたASP.NETファイル(Aspose.Cellsを呼び出すコードを含む)を圧縮されていない別のフォルダに移動します。
- 動的コンテンツのHTTP圧縮を無効にします。
- サーバーに生成されたファイルを保存し、ユーザーにリンクを提供します。
HTTP圧縮を使用する場合は、IIS圧縮を有効にしたことがわかっている場合は、常にOpenInBrowserオプションの代わりにOpenInExcelオプションを使用してください。