0

SQL データベースに格納されているドキュメントと画像を返す WCF サービスがあります。問題なくすべての画像を返すことができます。書類に関しては返却できますが、開いてみると空っぽです。コードをステップ実行するときのファイル サイズは正しく、ドキュメントを開くときのページ数も正しくなります。すべて空白です。

ドキュメントを取得するために使用しているものは次のとおりです。

String folderPath = System.Configuration.ConfigurationManager.AppSettings["ImagePath"].ToString();

 MemoryStream ms = new MemoryStream(byteArrayIn);

 FileStream fs = new FileStream(folderPath + "1" + fileExt,FileMode.Create ,FileAccess.Write);

 byte[] bytes = new byte[ms.Length];

 fs.Write(bytes, 0, bytes.Length);

 fs.Flush();

 ms.Flush();

 fs.Close();

 ms.Close();

私も .pdf で試してみましたが、ファイルが壊れている可能性があり、開かないことがわかりました。

ご協力いただきありがとうございます。

4

1 に答える 1

0

バイトを割り当ててから書き出します。バイトを割り当てると、それはゼロの配列になります(または、おそらくランダムなバイトの配列です。完全にはわかりませんが、それはどこにもありません.)。あなたはそれを移入することはありません。

byte[] bytes = new byte[ms.Length];

fs.Write(bytes, 0, bytes.Length);

さらに、Nikola が指摘したように、byteArrayIn に既にデータのバイト配列がある場合、MemoryStream は不要なようです。代わりにそれを書き出すだけです。

于 2013-03-27T14:06:57.090 に答える