chicos estoy usando inputStream para la Descarga de archivos . ahora quiero pasar de nombre de archivo y tipo de archivo en DefaultStreamedContent .ahora, ¿cómo puedo encontrar el nombre de archivo y Tipo de archivo utilizando inputStream .

InputStream inputStream = new BufferedInputStream(new FileInputStream(filePath));
fileDownload = new DefaultStreamedContent(inputStream,**fileType,fileName**);
  • por qué no utilizar fileDownload = new DefaultStreamedContent(inputStream); ?
InformationsquelleAutor Arunprasad | 2012-11-05

1 Comentario

  1. 5

    Esta información no puede ser extraída de InputStream. Esta información sólo puede ser extraído basado en la filePath (y con un poco de ayuda de java.io.File para conseguir fácilmente el nombre de archivo).

    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);

    La ExternalContext#getMimeType() se determina con base en <mime-mapping> entradas en web.xml. El servletcontainer tiene ya un montón definida por sí misma (en Tomcat, compruebe /conf/web.xml) pero se puede extender y reemplazar la (re)definición de ellos en la web de la propia /WEB-INF/web.xml como sigue para una XLSX tipo:

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

Dejar respuesta

Please enter your comment!
Please enter your name here