Есть ли лучший способ отправить файлы клиенту в asp.net? - PullRequest
0 голосов
/ 15 апреля 2019

Мне нужно отправить файл клиенту для загрузки с использованием javscript, и я нашел следующий способ сделать это:

Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment; filename="myflie.txt");
Response.ContentType = "text/plain";
Response.Flush();
Response.TransmitFile(filePath);
Response.End();

Однако я не могу получить имя файла, потому что кажется, что это возвращает необработанный файл и вызов getResponseHeader не работает. У меня также возникают проблемы при загрузке самого файла, поскольку возникает ошибка Resource 'blob: …' not allowed to load. Кроме имени файла, я также хотел бы передать некоторые другие параметры как JSON, и я не могу сделать это с помощью этого метода. Я начинающий, когда дело доходит до asp.net, поэтому я надеюсь, что был достаточно ясен.

1 Ответ

0 голосов
/ 15 апреля 2019

Вы пометили как использование MVC, если вы действительно не хотите связываться с Ответом напрямую ... Вы можете использовать метод File ():

https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.controller.file?view=aspnet-mvc-5.2

Или посмотрите на некоторые из этих альтернатив, чтобы разрешить изменение некоторых метаданных:

Возвращение файла для просмотра / загрузки в ASP.NET MVC

Если вы хотите загрузитьfile и send json вам нужно будет использовать multipart, хотя я бы избегал этого и вместо этого настраивал два разных действия, так как этот способ более совместим

...