【问题标题】:Save file from byte array on servermap path从服务器映射路径上的字节数组保存文件
【发布时间】:2011-02-16 14:56:19
【问题描述】:

我想保存一个字节数组中的 PDF 文件,并想将该文件保存在我的服务器映射路径位置。

下面是我的代码 sn-p。它没有给出错误,也没有保存文件。如果有错误欢迎您更正我的语法或通过参考其他代码sn-ps来帮助我。

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

【问题讨论】:

  • 不是答案,但您可以使用File.WriteAllBytes 简化此问题:msdn.microsoft.com/en-us/library/…
  • 什么不完全有效?你有错误吗?
  • AArsian:就像@Thomas 问的那样:请提供完整的错误消息和堆栈跟踪。

标签: c# path binary bytearray iostream


【解决方案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】:

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

    【讨论】:

      【解决方案3】:
      Server.MapPath(".\\TmpImages\\"+hfFileName+".pdf ")
      

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-26
        • 1970-01-01
        • 1970-01-01
        • 2017-09-30
        • 1970-01-01
        • 2013-11-09
        • 2023-04-10
        相关资源
        最近更新 更多