У меня есть веб-приложение в ASP.NET с C#, и у меня возникла проблема с открытием некоторых PDF-файлов.Мои PDF-файлы открываются в Adobe, но не через мой браузер
Код просматривает выбранный идентификатор и вытягивает путь PDF, связанный с этим идентификатором. Возвращаемый путь работает и корректен. По какой-то причине, когда я открываю браузер в браузере, он говорит, что файл поврежден и не может быть восстановлен, но когда я его открываю в Adobe, все идеально.
Вот мой код:
string id;
string path;
DataTable dt = Session["UnmatchedItems"] as DataTable;
ASPxButton button = (ASPxButton)sender;
id = button.CommandName;
DataView dv = new DataView(dt);
dv.RowFilter = "id = " + id;
path = dv[0][2].ToString();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename=" + path);
Response.WriteFile(path);
Не уверен, что происходит и почему он не откроется ...
Если я забыл что-нибудь или вам нужно больше информации, дайте мне знать!
Мой путь представляет собой физический путь на клиента сервера/компьютера, поэтому Server.MapPath генерирует исключение, так как он не является допустимым виртуальный путь. – Carson
, то избавитесь от Server.MapPath и просто поместите физический путь в качестве параметра ReadAllBytes. Я просто показал пример, если у вас есть файл в каталоге на вашем веб-сервере в вашем приложении. Процесс aspnet должен иметь права чтения для этого каталога, в котором вы также пытаетесь получить файл. – Steve
У меня такая же ошибка: «Ошибка при открытии этого документа. Файл поврежден и не может быть восстановлен». – Carson