ASP.NET C # - сохранить FileStream на сервере - PullRequest
0 голосов
/ 08 сентября 2011

У меня вопрос для начинающих.

Как сохранить поток файлов в файл на сервере?!

Я получил это:

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

Большое спасибо.

Ответы [ 3 ]

3 голосов
/ 08 сентября 2011

Используйте 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);
}
1 голос
/ 08 сентября 2011

Вы можете использовать код, чтобы получить каталог веб-сайта и сформировать свой собственный путь к файлу.

См. Этот вопрос для получения каталога веб-сайта.

Как получить физический путь веб-сайта на локальном сервере IIS? (из настольного приложения)

1 голос
/ 08 сентября 2011

Вам необходимо отобразить путь к вашему серверу:

Если память мне подходит, вы можете использовать что-то вроде:

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

Обратите внимание, что строка пути должна начинаться с символа тильды.

С уважением

...