Member 14144306 Ответов: 2

Как вызвать путь локальной библиотеки изображений в ASP.NET веб-приложения


Так что у меня есть ASP.NET веб-приложение на языке c#. Я создал метод для загрузки файлов, и он отлично работает. В настоящее время он не загружает файлы на диск D, как я указал этот путь. Однако я хочу, чтобы файлы были загружены в локальную библиотеку изображений.
Ниже приведены мои коды:

Что я уже пробовал:

охраняемых недействительными GridView1_RowCommand(объект отправителя, GridViewCommandEventArgs е)
{
if (e.CommandName == "скачать")
{
Ответ.Четкий();
Ответ.Значение contentType = "применение/октете-трансляция";
Ответ.AppendHeader("content-disposition", "filename=" + e.CommandArgument);
Ответ.TransmitFile(Сервер.MapPath("~/Images/") + e.CommandArgument);
Веб-клиент веб-клиент = новый Вебклиент();
служба WebClient.DownloadFile(Сервер.MapPath("~/Images/") + e.CommandArgument, @"d:\myfile.jpg");
Ответ.Конец();


}
}

Richard MacCutchan

Измените имя пункта назначения на нужное вам местоположение.

2 Ответов

Рейтинг:
2

Wastedtalent

Вы могли бы заглянуть в окружающую среду.Специальные папки:

Окружающая среда.Перечисление Специальных Папок (System) | Microsoft Docs[^]

Здесь есть довольно подробная запись: Получение всех "специальных папок" в .NET[^]


Рейтинг:
0

Richard Deeming

Цитата:
WebClient webClient = new WebClient();
webClient.DownloadFile(Server.MapPath("~/Images/") + e.CommandArgument, @"d:\myfile.jpg");

Этот код работает на сервере. Это копирование образа в корневой каталог диска D: на сервере.

Может быть появиться для работы при отладке кода в Visual Studio. Но это только потому, что в данном конкретном случае клиент и сервер-это один и тот же компьютер.

Как только вы развернете свой код на реальном сервере, вы увидите, что файл сохраняется на сервере, а не на клиенте.

Остальная часть вашего кода-это единственный способ отправить файл клиенту:
Response.Clear();
Response.ContentType = "application/octect-stream";
Response.AppendHeader("content-disposition", "filename=" + e.CommandArgument);
Response.TransmitFile(Server.MapPath("~/Images/") + e.CommandArgument);
Response.End();

NB: Пользователю будет предложено выбрать, где он хочет сохранить файл. Нет никакого способа контролировать, где и даже если пользователь сохраняет файл.