从servermap路径上的字节数组中保存文件

时间:2011-02-16 14:56:19

标签: c# path binary bytearray iostream

我想从字节数组中保存PDF文件,并希望将该文件保存在我的服务器地图路径位置。

以下是我的代码段。它没有给出错误也没有保存文件。如果有错误,欢迎您更正我的语法,或者通过引用其他代码片段来帮助我。

byte[] data = (byte[])listDataset.Tables[0].Rows[0][0];

System.IO.FileStream file = System.IO.File.Create(Server.MapPath(".\\TmpImages\\"+hfFileName+".pdf "));

file.Write(data, 0, data.Length);
file.Close();

3 个答案:

答案 0 :(得分:1)

这可能是权限问题...运行ASP.net帐户必须具有对目标目录的写权限。

答案 1 :(得分:1)

另一个“没有答案”,但可能有助于统治一些东西。我试过了

  byte[] data = new byte[] { 12, 14, 63, 45, 3 };

  System.IO.FileStream file = System.IO.File.Create(HttpContext.Current.Server.MapPath(".\\imageLibrary\\test.pdf "));

  file.Write(data, 0, data.Length);
  file.Close();

并且工作正常(test.pdf已创建)。我原以为文件路径末尾的空格可能会导致问题,但事实并非如此。

您确定没有将此块包含在可能吞下路径或权限错误的try {} catch {}块中吗?您是否尝试在file.Close()行上设置断点以确保它到达那么远?

答案 2 :(得分:0)

Server.MapPath(".\\TmpImages\\"+hfFileName+".pdf ")

您确定路径是您所期望的吗?如果您确定没有获得异常(即权限),那么我建议调试并查看对Server.MapPath的调用返回的值。

文件可能已被写出,但可能与您预期的位置不同。

“如果[MapPath的参数]不是以斜杠开头,则MapPath方法返回相对于正在处理的.asp文件的目录的路径。” http://msdn.microsoft.com/en-us/library/ms524632%28v=vs.90%29.aspx