JSF Primeffaces下载文件



我目前正在开发JSF PrimeFaces,我想下载我的项目名称"CV"文件夹中的文件,但这里面临的问题是下面的代码

文件上传:

<h:form enctype="multipart/form-data">
    <p:fileUpload
        fileUploadListener="#{fileUploadController.handleFileUploadCv}"
        mode="advanced" update="messages"
        allowTypes="/(.|/)(doc|docx)$/" />
    <p:growl id="messages" showDetail="true" />
</h:form>

文件下载:

<h:form id="form11">
    <p:commandButton id="downloadLink" value="Download Cv" ajax="false"
        onclick="PrimeFaces.monitorDownload(start, stop)"
        icon="ui-icon-arrowthichk-s">
        <p:fileDownload value="#{fileDownloadController.file}" />
    </p:commandButton>
</h:form>

这是控制器类:

import java.io.InputStream;  
import org.primefaces.model.DefaultStreamedContent;  
import org.primefaces.model.StreamedContent;  
@ManagedBean
@SessionScoped
public class FileDownloadController {  
    private StreamedContent file;  
    public FileDownloadController() {
        InputStream stream = ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext()).getResourceAsStream("D:/Final Year Project/displayjob-portlet/docroot/cv/Junaid.cv");  
        System.out.print("inside download111");
        file = new DefaultStreamedContent(stream);  
    }
    public StreamedContent getFile() {
        return file;
    }
}

您正试图从pc而不是服务器获取文件。由于应用程序在服务器上运行,因此根目录就是您的服务器域根目录。尝试将文件放入服务器中,并更改其目录。例如,你可以在服务器的根目录中创建一个名为filesToDownload的文件夹,然后把你的文件放在里面

InputStream stream = ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext()).getResourceAsStream("filesToDownload/Junaid.cv");

我知道这个问题有点老,但由于我面临同样的问题,我认为这个答案可能会帮助其他人。

您是否在页面中添加了该脚本;

<script type="text/javascript">
function start() {
    PF('statusDialog').show();
}
function stop() {
    PF('statusDialog').hide();
}
</script>

相关内容

  • 没有找到相关文章

最新更新