この情報は から抽出できませんInputStream
。この情報は、に基づいてのみ抽出できます(ファイル名を簡単に取得するfilePath
ための助けはほとんどありません)。java.io.File
File file = new File(filePath);
InputStream inputStream = new FileInputStream(file);
String fileName = file.getName();
String fileType = FacesContext.getCurrentInstance().getEexternalContext().getMimeType(fileName);
fileDownload = new DefaultStreamedContent(inputStream, fileType, fileName);
は、 のエントリにExternalContext#getMimeType()
基づいて決定されます。servletcontainer には、すでにそれ自体で定義された全体の束があります (Tomcat では、 check ) が、次のように XLSX タイプの場合のように、webapp 自体でそれらを (再) 定義することで、拡張およびオーバーライドできます。<mime-mapping>
web.xml
/conf/web.xml
/WEB-INF/web.xml
<mime-mapping>
<extension>xlsx</extension>
<mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</mime-type>
</mime-mapping>