###前提・実現したいこと
下記の処理をするプログラムを作成中です。
1.WEBページでファイルをアップロードを行い、データをDBへ格納する。
2.上記1で格納したファイルを、WEBページでファイルを表示させる。
現在、ファイルを開く際に「'ファイル.xlsx'の一部の内容に問題~」というメッセージが表示されてしまいます。
このメッセージを回避する方法をご教示頂けないでしょうか?
###発生している問題・エラーメッセージ
DBに格納したファイルをダウンロードする際に、画面に下記のメッセージが表示されます。
サーバから'ファイル.xlsx'を開くか、または保存しますか?
上記メッセージで[ファイルを開く]をクリックすると、クライアントのExcelが起動するのですが、下記メッセージが表示されてしまいます。
'ファイル.xlsx'の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?ブックの発行元が信頼できる場合は、[はい]をクリックしてください。
その後、[はい]をクリックすると、ファイルが表示されます。
※内容は欠落せず、問題なく表示されます。
###該当のソースコード
Public Class FileDisp Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'LINQを使用してデータベースから情報取得 Dim FileCode As String = Request.QueryString("FileCode") Dim _FileService As New FileService Dim _File As FileDataType = _FileService.GetItem(BranchCode) 'バッファのクリア Response.ClearContent() 'ページ出力をバッファに格納 Response.Buffer = True 'ファイルのコンテンツタイプ設定 Response.ContentType = _File.FileType 'HTTP ヘッダーを出力ストリームに追加 Response.AppendHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("ファイル." + _File.FileExtension)) '文字コード設定 Response.ContentEncoding = Encoding.GetEncoding("shift_jis") 'HTTP 出力にバイナリファイルの中身を書き込み Response.BinaryWrite(_File.File.ToArray()) 'クライアントへバッファ送信 Response.Flush() Response.End() End Sub End Class
###試したこと
0. PDFやテキストファイルでは、問題なく表示できます。
0. xlsやdocなどのファイルも問題なく表示できます。
0. xlsxやdocxなどのファイルは、メッセージが表示されてしまいます。
0. 新規で中身が空のxlsxファイルを作成し試してみても、メッセージが表示されてしまいます。
0. クライアント側のExcelのオプションの「保護ビュー」の設定を全て外しても、メッセージが表示されてしまいます。
0. xlsxファイルを一旦クライアントに保存後、ファイルを開いてもメッセージが表示されてしまいます。
###補足情報(言語/FW/ツール等のバージョンなど)
<サーバ環境>
OS:Windows 2012 R2 Standard
IIS:8.5
DB:SQL Server 2012
開発環境:Visual Studio Enterprise 2015
使用言語:ASP.NET
<クライアント環境>
OS:Windows 8.1 Enterprise
ブラウザ:Internet Exploere 11
Office:Office 2013
※不足している情報があれば、ご指摘よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/28 10:14 編集