Загрузка / потоковая передача файла с URL-адреса - asp.net

Мне нужно передать файл в потоковом режиме, что приведет к сохранению в виде приглашения в браузере. Проблема в том, что каталог, в котором находится файл, виртуально сопоставлен, поэтому я не могу использовать Server.MapPath для определения его фактического местоположения. Каталог находится не в том же месте (или даже на физическом сервере на живых ящиках), что и веб-сайт.

Я бы хотел что-то вроде следующего, но это позволит мне передать веб-URL, а не файл сервера путь.

Возможно, мне придется построить свой путь к файлу из базового пути конфигурации, а затем добавить его в оставшуюся часть пути, но, надеюсь, я смогу сделать это таким образом.

var filePath = Server.MapPath(DOCUMENT_PATH);

if (!File.Exists(filePath))
    return;

var fileInfo = new System.IO.FileInfo(filePath);
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", String.Format("attachment;filename=\"{0}\"", filePath));
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.WriteFile(filePath);
Response.End();
66
задан Saro Taşciyan 29 December 2013 в 20:35
поделиться