【问题标题】:ASP.NET C# - Save FileStream on serverASP.NET C# - 在服务器上保存 FileStream
【发布时间】:2011-09-07 21:48:29
【问题描述】:

我有初学者的问题。

如何将文件流保存到服务器上的文件中?!

我知道了:

var source = Request.QueryString["src"];
WebClient webclient = new WebClient();
using (Stream stream = webclient.OpenRead(source))
{
   Bitmap iconbitmap = new Bitmap(System.Drawing.Image.FromStream(stream));
   FileStream os = new FileStream("./asdasdasd.ico", FileMode.Create);

   var ic = MakeIcon(iconbitmap, 16, false); /// function returns an icon

   ic.Save(os);
}

我的问题是,当我在 ASP.NET 开发服务器中运行代码时,它会将“asdasdasd.ico”保存到: C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\asdasdasd.ico

而且,当我在远程服务器上运行它时出现错误。

我想把它保存到: www.my-web-site.com/output/asdasdasd.ico

非常感谢。

【问题讨论】:

  • 您是否正在尝试将文件从客户端上传到服务器上的页面?如果是这样,这不是正确的做法。
  • 不,我不需要上传。我需要通过 QueryString 从其他服务器/站点获取源图像,将其转换为图标并将其保存到服务器。 BrokenGlass 解决方案完成了这项工作:)

标签: c# asp.net save filestream


【解决方案1】:

使用Server.MapPath()(也可以使用using 块来关闭文件):

using(FileStream os = new FileStream(Server.MapPath("/output/asdasdasd.ico"), FileMode.Create))
{
   var ic = MakeIcon(iconbitmap, 16, false); /// function returns an icon
   ic.Save(os);
}

【讨论】:

    【解决方案2】:

    您需要映射服务器的路径:

    如果我没记错的话,你可以使用类似的东西:

    HttpContext.Current.Server.MapPath("~/MyPathToSomething");
    

    注意路径字符串必须以波浪号开头。

    问候

    【讨论】:

      【解决方案3】:

      您可以使用代码获取网站的目录并形成您自己的文件路径。

      有关如何获取网站目录的信息,请参阅此问题。

      How to get website's physical path on local IIS server? (from a desktop app)

      【讨论】:

        猜你喜欢
        • 2018-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-12
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        • 2012-06-03
        相关资源
        最近更新 更多