我有一个客户端服务,它通过Web服务写入SQL中的varbinary(max)字段。
然后我通过网页上的回复来写这个,通过www下载。 这适用于xlsx文件以外的所有内容。
我在没有使用回复的情况下进行了测试,我遇到了同样的问题。
当打开Excel表示'我们发现某些内容存在问题。试图打开 然后,Excel能够通过修复和删除......等等来打开文件。
客户端应用通过以下方式阅读:
MAKECERT
然后通过网络服务保存myByteArray。
客户端使用实体框架从db编写数据提取并使用以下命令编写
Dim objFileStream As IO.FileStream = New IO.FileStream(fileItem, FileMode.Open, FileAccess.Read)
Dim len As Integer = objFileStream.Length
Dim myByteArray(len) As Byte
objFileStream.Read(myByteArray, 0, len)
objFileStream.Close()
我已尝试过各种方法来编写文件,但我一直都会收到此损坏信息。
有什么想法吗?
编辑:
如果我删除webservice / db传输/存储等,我可以将问题缩小到如下:
- 读取方法:
System.IO.File.WriteAllBytes(filePath1, output)
- 立即写:
Dim objFileStream As IO.FileStream = New IO.FileStream(fileItem, FileMode.Open, FileAccess.Read)
Dim len As Integer = objFileStream.Length
Dim myByteArray(len) As Byte
objFileStream.Read(myByteArray, 0, len)
objFileStream.Close()
test.xlsx仍然存在未解决的问题。
答案 0 :(得分:0)
我按照建议进行了原始文件比较,发现将xlsx读入字节数组时,最后一个数组点会出现一个额外的空值。
在没有最后一项的情况下重新放大数组,然后保存完美。 db save load和后续response.writes也运行良好。
感谢您的输入