2013-02-18 2 views
0

В настоящее время я работаю над JSF PrimeFaces, я хочу, чтобы загрузить файл, который присутствует в моем проекте имя папки «CV», но сталкиваются с проблемами, здесь есть ниже код загрузкиJSF Primefaces загрузить файл

Файл:

<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; 
    } 
} 
+0

Вы «сталкиваетесь с проблемами». скажите нам, что это такое. – Zhedar

+0

coud'nt может загрузить файл.no ответ –

+1

, пожалуйста, проверьте журналы сервера и консоль ошибок в своем браузере, а затем скажите, что вы получили там. Второй вариант пока не представляет интереса, если вы обнаружите ошибки в журналах. – Zhedar

ответ

1

Вы пытаетесь получить файл с вашего компьютера, а не с сервера. Поскольку приложение работает на сервере, корневой каталог является корневым каталогом домена вашего домена. Попробуйте поместить файл на сервер и изменить его каталог. Например, вы можете создать папку внутри корневого каталога сервера под названием filesToDownload и поместить в нее свой файл. Тогда вы должны найти его, как это:

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

Я знаю, что этот вопрос немного устарела, но, как я столкнулся такая же проблема, я думаю, что этот ответ может помочь кому-то еще.

0

Вы добавили этот скрипт на свою страницу;

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

function stop() { 
    PF('statusDialog').hide(); 
} 
</script> 
Смежные вопросы