gpt4 book ai didi

java - 如何获取具有绝对路径的文件的 InputStream 并将其添加到 StreamedContent 对象以便在 p :fileDownload? 中使用它

转载 作者:行者123 更新时间:2023-12-02 05:34:26 25 4
gpt4 key购买 nike

我在 C:/Reports/report.pdf 中有一个 pdf,我需要使用 primefaces 下载它。正如我所读到的,我需要首先获取文件的 InputStream 并使用 DefaultStreamedContent 来获取 StreamedContent 但我尝试的一切都失败了。

请帮助我,这应该很容易,但遇到了很多问题。

信息here使用/resources/web 目录。我需要使用文件的绝对路径来做到这一点。

最佳答案

我这样做解决了这个问题:

<p:commandButton value="Download" ajax="false" actionListener="#{downloadBean.prepareDownload()}">
<p:fileDownload value="#{downloadBean.download}" />
</p:commandButton>

还有:

@ManagedBean
public class DownloadBean {

/**
* Creates a new instance of DownloadBean
*/

private DefaultStreamedContent download;

public void setDownload(DefaultStreamedContent download) {
this.download = download;
}

public DefaultStreamedContent getDownload() throws Exception {
System.out.println("The file: " + download.getName());
return download;
}

public void prepareDownload() throws Exception {
File file = new File("C://ImagenesAlmacen/Reporte/report.pdf");
InputStream input = new FileInputStream(file);
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
setDownload(new DefaultStreamedContent(input, externalContext.getMimeType(file.getName()), file.getName()));
}

}

关于java - 如何获取具有绝对路径的文件的 InputStream 并将其添加到 StreamedContent 对象以便在 p :fileDownload? 中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25149607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com