ASP.NET C# - 在服务器上保存 FileStream
Posted
技术标签:
【中文标题】ASP.NET C# - 在服务器上保存 FileStream【英文标题】:ASP.NET C# - Save FileStream on server 【发布时间】: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 解决方案完成了这项工作:) 【参考方案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)
【讨论】:
以上是关于ASP.NET C# - 在服务器上保存 FileStream的主要内容,如果未能解决你的问题,请参考以下文章
从 CSV 生成 Excel 电子表格(ASP.NET C#)[重复]
如何在 C# Asp.net 中将 SELECT sql 查询结果保存在数组中