Member 10549697 Ответов: 1

Как открыть файл в браузере с гиперссылкой


публичная строка GetCheckListDocUrl(object DeliverablesID)
{

SOBO objScope = новый SOBO();
objScope.DelivarablesID = Преобразовать.ToInt32(DeliverablesID);
DsDelivarablesDoc набор данных = objScope.GetSODeliverablesDocument();
// scopeDoc = dsDelivarablesDoc.Таблицы[0]. Строки[0] ["PLC_Filepath"].Метод toString();
системы строке URL-адрес_сайта =.Конфигурация.Конфигурационный менеджер.AppSettings ["websiteroot"].Метод toString();
string path = DeliverablesID.Метод toString().Заменить("~", "").TrimStart('/');
url-адрес_сайта = url_сайта + путь;
возвращение url-адрес_сайта;
}

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

я пытаюсь открыть файл, нажав на имя файла в браузере (Google Chrome), но когда я нажимаю на файл, несмотря на наличие правильного адреса, браузер не открывает файл

[no name]

Что это за файл ? Насколько я знаю, это проблема безопасности, если вы можете открыть файл из браузера щелчком мыши. Браузер может автоматически открывать только HTM, HTML ,TXT, изображения... а не EXE, ZIP,...

Member 10549697

даже он не открывает текстовые файлы

1 Ответов

Рейтинг:
9

Madhu Nair

Попробуйте использовать приведенный ниже код -

WebClient req = new WebClient();
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.ClearContent();
response.ClearHeaders();
response.Buffer = true;

response.AddHeader("Content-Disposition", "attachment;filename=\"" + System.IO.Path.GetFileName(HttpContext.Current.Server.MapPath(FileName)) + "\"");
byte[] data = req.DownloadData(HttpContext.Current.Server.MapPath(FileName));
response.BinaryWrite(data);
response.End();


Member 10549697

как добавить имя файла в этот код?

Madhu Nair

Создайте функцию с кодом и используйте переменную FileName, указанную в коде, в качестве параметра, где вы можете передать полный путь к имени файла. В коде, который я опубликовал, я передавал имя файла как "~/upload/test.txt". Поэтому я использовал сервер.Функция MapPath.

Member 10549697

окей.спасибо.это помогло