У меня есть вопрос о выводе файлов PDF. В настоящее время я храню PDF в базе данных в двоичном виде. Я вывожу PDF-файл через URL-адрес, такой как:
http://myhost.com/FileManager.aspx?FileId=8465b2f9-b64e-4a9a-a449-94b5adb3b278
Итак, из того, что я мог сделать вывод, для браузера это загружаемая страница ASPX, а не PDF. Firefox и IE правильно интерпретируют это и запускают Adobe Acrobat, однако, поскольку Chrome (12.0.742.112) имеет собственную реализацию программы чтения PDF, он откроет файл правильно, но затем, когда кто-то собирается сохранить файл в Chrome, он хочет сохраните его в формате .aspx. Если я просто переименую .aspx в .pdf, файл загрузится правильно. Однако я стараюсь не говорить своему клиенту, что ему / ей, возможно, придется сделать этот дополнительный шаг.
Когда я решил посмотреть заголовки, загруженные в Chrome через Web Inspector, я увидел это:
FileManager.aspx: -1 Ресурс интерпретируется как Документ, но перенесен
с приложением типа MIME / pdf
Я полностью понимаю, почему Chrome так сказал.
Кроме того, я получаю сохранение как поле при загрузке страницы, когда добавляю:
Response.AddHeader("content-disposition", "attachment;filename=blah.pdf");
Однако я надеялся просто сохранить файл в браузере. Итак, кроме использования перезаписи URL-адреса, есть ли способ манипулировать заголовками HTTP, чтобы просто открыть страницу в формате PDF и правильно сохранить ее в Chrome?
Наконец, я попытался использовать WebService, но я не могу записать двоичные данные на страницу.
this.Context.Response.BinaryWrite(bytes);
Любая помощь приветствуется!