Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 数据库中损坏的PDF数据_.net_Sql_Sql Server 2008_Devexpress_Xaf - Fatal编程技术网

.net 数据库中损坏的PDF数据

.net 数据库中损坏的PDF数据,.net,sql,sql-server-2008,devexpress,xaf,.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); } 许多p

我使用的是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编写)打开。默认
文件数据类型的Devexpress XAF实现会在保存流(Gzip)之前对其进行压缩。如果不先解压缩流,您将无法读取内容。您可以使用DevExpress.Persistent.Base程序集中的压缩.decompression()


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

当您说“可以通过程序打开”时。该程序是否显示PDF?尝试使用多个替代PDF阅读器来读取损坏的文件,您就会知道问题是在阅读器中还是在文件中。请随时向我发送PDF示例,我可以使用Adobe Acrobat的完整版本为您检查。还要检查sql server上的排序规则我在使用unicode时遇到过类似的问题。我认为,这是fs.Write问题,读卡器完全可以工作。