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服务器上获取网站的物理路径? (来自桌面应用)