我的文件下载无法正常工作。我按照this线程中提供的说明进行操作,但是下载的文件只是一个名为null的文件,但是我想要下载的文件大小。我使用的命令是
<p:commandLink ajax="false">
Download
<p:fileDownload value="#{dtEditView.file}"/>
</p:commandLink>
我的bean由以下
组成public StreamedContent getFile() throws IOException {
path = "C:\\test.jpeg";
contentType = FacesContext.getCurrentInstance().getExternalContext().getMimeType(path);
return new DefaultStreamedContent(new FileInputStream(path), contentType);
}
我做错了什么,我错过了什么?我使用的是Primefaces 5.2。
编辑:我将文件重命名为它应该是的文件扩展名,它似乎是我想要的。剩下的问题还在吗?
答案 0 :(得分:3)
只需将要用于下载的文件名添加到DefaultStreamedContent
的构造函数:
return new DefaultStreamedContent(new FileInputStream(path), contentType, "filename.jpeg");
或保持与资源相同的名称:
return new DefaultStreamedContent(new FileInputStream(path), contentType, path.getFileName().toString());
与展示中的bean进行比较: