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的主要内容,如果未能解决你的问题,请参考以下文章

表单帖子不包含文本框数据 [ASP.NET C#]

从 CSV 生成 Excel 电子表格(ASP.NET C#)[重复]

如何在 C# Asp.net 中将 SELECT sql 查询结果保存在数组中

从 ftp 在 gridview 上显示数据 查看更多:C#ASP.NET

将信息导出到 xlsm 文件,C# VS asp.net

如何将c#做好的asp.net网站部署到iis上