SQL Server 2008R2 に varbinary として保存されている xlsx をダウンロードしようとしています。
Dim command2 As New SqlCommand("SELECT data FROM DocsTable WHERE ID = '" & Id.ToString() & "' ", con)
Response.AddHeader("Content-Disposition", "attachment;filename=Test.xlsx")
Dim command6 As New SqlCommand("SELECT DATALENGTH(data) FROM DocsTable WHERE ID = '" & Id.ToString() & "' ", con)
Dim length As String = command6.ExecuteScalar()
Response.ContentType = "application/octet-stream"
Response.AddHeader("Content-Length", length)
Response.BinaryWrite(dr(0))
Response.Flush()
Response.End()
ダウンロードしたファイルを開こうとすると、 「Excel が 'Test.xlsx' に読み取り不可能なコンテンツが見つかりました」というエラーが表示されます。このブックの内容を復元しますか? このブックの発行元が信頼できる場合は、[はい] をクリックします。
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error063040_01.xml</logFileName>
<summary>Errors were detected in file 'C:\Users\irstudent\Downloads\Test.xlsx'</summary>
<additionalInfo><info>Excel completed file level validation and repair. Some parts of this workbook may have been repaired or discarded.</info></additionalInfo>
</recoveryLog>
元ファイルとダウンロードファイルの内容を比べてみたところ、ジャンク文字などの文字の違いは見当たりませんでした