数据库中的PDF数据损坏

时间:2013-02-12 13:05:52

标签: .net sql sql-server-2008 devexpress xaf

我正在使用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会提醒“损坏的文件”消息。 注意:所有这些都可以通过使用此DB

的程序(使用Devexpress XAF编写)打开

1 个答案:

答案 0 :(得分:2)

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

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