0

私はMSSQL2008を使用しています。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で記述)を介して開くことができます。

4

1 に答える 1

2

デフォルトタイプのDevExpressXAF実装はFileData、ストリーム(Gzip)を保存する前に圧縮します。最初にストリームを解凍しないと、コンテンツを読み取ることはできません。CompressionUtils.Decompress()DevExpress.Persistent.Baseアセンブリにあるものを使用できます。

または、独自のバージョンを実装して、FileDataこの動作を変更することもできます。ソースを確認し(または逆コンパイラーを使用して)[ValueConverter(typeof(CompressionConverter))]、プロパティから属性を削除しContentます。

于 2013-03-13T22:03:56.483 に答える