ASP.NET C# - Save FileStream on server
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.
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);
}
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
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)
精彩评论