0

我有一个 WCF 服务,它返回存储在 SQL 数据库中的文档和图像。我能够毫无问题地返回所有图像。当涉及到文件时,我可以退回文件,但是当我打开它时它是空的。单步执行代码时文件大小是正确的,并且在打开文档时它的页数也正确。就是一片空白。

这是我用来获取文件的内容:

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();

我也用 .pdfs 尝试过它,它告诉我文件可能已损坏并且无法打开。

谢谢你的帮助。

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 回答