ASP.NET C# - Save FileStream on server

大兔子大兔子 提交于 2019-12-04 06:04:27

问题


I got beginners question.

How to save a file stream to a file on server?!

I got this:

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

My problem is than when I run code in ASP.NET Development Server it saves "asdasdasd.ico" into: C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\asdasdasd.ico

And, when I run it on remote server got error.

I want to save it into: www.my-web-site.com/output/asdasdasd.ico

Thank you very much.


回答1:


Use Server.MapPath() (also a using block for closing the file would help):

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:


You need to map your server's path :

If memory serves me right, you can use something like :

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

Note that the path string must start with the tilde character.

Regards




回答3:


You can use code to get the website's directory and form your own file path.

See this question for how to get the website's directory.

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



来源:https://stackoverflow.com/questions/7340910/asp-net-c-sharp-save-filestream-on-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!