元のオフィス ファイルは問題なく動作していますが (ワードとエクセルを試しました)、ファイルをバイナリとしてデータベースにアップロードし、そこから PC にダウンロードしてダウンロードしたファイルを開くと、「Excel が見つかりました」という警告メッセージが表示されます。コンテンツを読み取れません」などのエラーが発生し、元のファイルに比べてファイルがプレーンになっています。
正確なエラー メッセージは次のとおりです。「ファイル名.xls に読み取り不可能なコンテンツが見つかりました。このブックのコンテンツを復元しますか? このブックの発行元が信頼できる場合は、[はい] をクリックしてください。」
ファイルのアップロード方法:
'UPLOAD FILE
Dim fi As New FileInfo(FilePath)
Dim s As Stream = fi.OpenRead()
Dim buffer(fi.Length) As Byte 'I put the buffer in database in varbinary(max) format
s.Read(buffer, 0, fi.Length)
s.Close()
ファイルをダウンロードして開く方法:
'DOWNLOAD FILE
Dim fi As New FileInfo(FilePath)
Dim s As Stream = fi.OpenWrite()
Dim buffer As Byte() = reader("Binary")
s.Write(buffer, 0, buffer.Length)
s.Close()
'OPEN FILE
Dim p As New Process
p.StartInfo = New ProcessStartInfo(FilePath)
p.Start()
アップデート:
示唆されたように、私は単純にファイルをコピーして、SQL を完全に排除しようとしました。これも失敗した私が試したコードです:
Private Sub CopyFile(ByVal filePath As String)
Dim fi As New FileInfo(filePath)
Dim s As Stream = fi.OpenRead()
Dim buffer(CType(fi.Length, Integer) - 1) As Byte
s.Read(buffer, 0, CType(fi.Length, Integer))
s.Close()
Dim fi2 As New FileInfo(filePath & " Copy")
Dim s2 As Stream = fi2.OpenWrite()
s2.Write(buffer, 0, buffer.Length)
s2.Close()
End Sub