ASP.NET C# – 在服务器上保存FileStream

我有初学者的问题。

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

我懂了:

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 Development Server中运行代码时,它将“asdasdasd.ico”保存到:C:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ asdasdasd.ico

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

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

非常感谢你。

使用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); } 

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

如果记忆能为我服务,你可以使用以下内容:

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

请注意,路径字符串必须以波形符开头。

问候

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

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

如何在本地IIS服务器上获取网站的物理路径? (来自桌面应用)