Открытие файлов FileTable в C# / .net 4
У меня есть Filetable, содержащий много разных типов документов (.doc;.pdf;.xls и т. Д.).
Я пишу небольшое веб-приложение (C# / .net 4). Поиск отлично работает с использованием полнотекстового индекса с файловой таблицей для поиска содержимого.
Но я изо всех сил пытаюсь найти в своем приложении способ использовать результаты поиска в виде ссылок, которые могут запустить рассматриваемый документ? И просто обрабатывать разные типы файлов? (Предположим, что на клиенте установлены Word/ Adobe/ Excel и т. Д.)
Благодарен за любой совет.
1 ответ
Вам нужно будет написать собственный обработчик страницы для потоковой передачи байтов клиенту с правильными заголовками HTTP. Вам нужно будет решить, поддерживать ли встроенный просмотр (откройте в браузере - Content-Disposition: inline
) по сравнению с внешним просмотром с использованием вложения (например, Content-Disposition: attachment
).
Response.AddHeader("Content-Disposition", "attachment; filename=example.pdf");
Если вы используете ASP.NET MVC - вы можете использовать FileResult
упростить этот процесс, но создание собственного обработчика не будет сильно отличаться.
public FileResult Download()
{
byte[] fileBytes = ...; // from FileTable
string fileName = "example.txt";
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}
Лучший подход к обработке различных типов MIME (PDF, DOC, XLS) - статически определять поддерживаемые типы файлов или динамически читать IIS и назначать соответствующие Content-Type
HTTP заголовок.
Response.ContentType = "application/pdf";