Я написал пользовательский httphandler для файлов DocX, и я пытаюсь, чтобы файлы отображались через iframe.FileStreamResult и пользовательский httphandler
Вот мой контроллер:
public ActionResult LoadDOC(string path)
{
var fsSource = new FileStream(path, FileMode.Open, FileAccess.Read);
return new FileStreamResult(fsSource, "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
{
FileDownloadName = "newfile.docx"
};
}
}
Имя файла должно быть изменено таким образом, что HttpHandler может забрать его. Файлы находятся на файловом сервере без расширений (они переименованы в guid). Например:
"\\\\fileservername\\Documents\\811943a3-56f7-42cb-8450-1b8319a426b4\\633d9f3e-df99-408e-b59c-ec8efa4fa41f"
Я не могу изменить способ файлы находятся на сервере, я должен добавить расширение с помощью кода.
Когда вышеуказанное выполняется в iframe, файл сразу загружается. Однако файлы PDF и текстовые файлы выглядят правильно.
Вот обычай HttpHandler:
<add name="DOCXhandler" path="*.docx" verb="GET" type="MyProject.Handlers.DocxHandler, MyProject" preCondition="integratedMode" />
Как я могу идти о либо изменить расширение файла потока, используя этот подход, или другой подход, чтобы, возможно достичь желаемого результата, отображаемый в IFRAME файла?
Можно ли просто изменить обработчик по типу контента?
Редактировать: вопрос для ясности;
- Возможно ли сделать работу с обработчиком http по типу контента, а не расширением?
- Как я могу убедиться, что filestreamresult использует мой пользовательский httphandler для файлов .docx при отображении в iframe?
- Я иду об этом правильно, или я чего-то не хватает?
Благодарим за внимание. Я изменю это.Однако этот метод по-прежнему не привел к тому, что мой пользовательский обработчик подберет файл; он по-прежнему загружает :( –
@ user2414886 - Я не уверен, в чем ваш вопрос, чем ... Похоже, вы пытаетесь исправить то, что обработчик назвал серверной стороной, но из комментария он выглядит так, как будто вам нужен пользовательский рендеринг для DOCX на клиенте (тот, который отобразит DOC/DOCX внутри браузера) ... Пожалуйста, уточните свой вопрос. –
Отредактировано для, надеюсь, немного более ясно. Спасибо еще раз =) –