0

我正在使用 MS SQL 2008 我有一个带有 varbinary(max) 类型列的
表 该表有许多上传的 pdf 文件(字节数组)
我正在
通过以下代码将此字节转换为 pdf 文件:

using (FileStream fs = new FileStream
                (@"D:\EIFiles\test.pdf", FileMode.Create))
        {
            fs.Write(byte, 0, byte.Length);
        } 

许多 pdf 文件可以打开,但其中一些无法打开,因为 adobe reader 警告“损坏的文件”消息。注意:所有这些都可以通过使用该数据库的程序(用 Devexpress XAF 编写)打开

4

1 回答 1

2

默认类型的 DevExpress XAF 实现FileData在保存之前压缩流 (Gzip)。如果不先解压缩流,您将无法读取内容。您可以使用CompressionUtils.Decompress()DevExpress.Persistent.Base 程序集中的哪个。

或者,您可以实现自己的版本FileData并更改此行为。查看源代码(或使用反编译器)并[ValueConverter(typeof(CompressionConverter))]从属性中删除Content属性。

于 2013-03-13T22:03:56.483 回答