Загрузка статического файла MS Office 2007+ на JSF с помощью IE7 + - PullRequest
1 голос
/ 10 октября 2011

Получил этот код:

<h:outputLink title="#{msg.fileUpload_template_file}" styleClass="FormSubmitNoColor" type="application/vnd.ms-excel" value="#{facesContext.externalContext.requestContextPath}/resources/csvTemplates/02_myfile_V1.xlsx" >#{msg.fileUpload_template_file}</h:outputLink>

Этот код отлично работает для FF, но IE считает, что это zip-файл. почему?

Здесь можно найти тип MIME Настройка типа MIME для документа Excel но не работает.

1 Ответ

1 голос
/ 10 октября 2011

Технически, только типы MIME, перечисленные в собственном web.xml контейнера сервлет-контейнера (например, /conf/web.xml в Tomcat), распознаются и поддерживаются на основе расширения файла.

Расширение .xlsx является относительно новым и не поддерживается старыми сервлет-контейнерами. Однако вы можете определить пользовательские типы пантомимы в своем веб-приложении /WEB-INF/web.xml:

<mime-mapping>
    <extension>xlsx</extension>
    <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</mime-type>
</mime-mapping>

Если у вас есть полный административный контроль над сервлет-контейнером, вы, конечно, можете добавить его туда, например, файл /conf/web.xml Tomcat.

То, что он работает в FF, заключается в том, что FF будет определять сам по себе, основываясь на расширении файла, в соответствии с отображением типа mime-типа («ассоциации файлов», как его называют в Windows), когда заголовок ответа HTTP Content-Type загрузка файла отсутствует или является слишком общей.

Соответствующий вопрос, который вы там нашли, относится только к файлам .xls (и по умолчанию уже поддерживается большинством текущих сервлет-контейнеров). Вы можете найти обзор всех новых типов mime-файлов Office 2007 OpenXML здесь: http://filext.com/faq/office_mime_types.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...