Загрузить файл в формате JSF - PullRequest
1 голос
/ 20 марта 2012

Я пытаюсь загрузить файл с простой формой, но он все время возвращается на одну и ту же страницу. Чтобы найти ошибку или что-то не так, я просто хочу написать в выводе имя файла, который я загружаю. Как только я смогу получить имя файла, я думаю, что смогу разобраться, как обрабатывать весь файл. Так вот мой код:

<h:form enctype="multipart/form-data">    
            <h:outputText value="Argazkia: "/>
            <p:fileUpload value="#{jokoBerriaController.file}" mode="simple"/>
            <p:commandButton value="Bidali" ajax="false" actionListener="#{jokoBerriaController.upload()}"/>
</h:form>

Контроллер:

import javax.faces.bean.ManagedBean;
import org.primefaces.model.UploadedFile;

@ManagedBean
public class jokoBerriaController {  

    public static UploadedFile file; 

    public UploadedFile getFile() {  
        return file;  
    }  

    public void setFile(UploadedFile file) { 
        this.file = file;  
    }  

    public void upload() {          
        System.out.println("file " + file.getFileName());
    }  
}

Я добавил

<filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

в моем файле web.xml, но я не добавил библиотек commons-io и commons-fileupload. Я прочитал, что мне нужно поместить следующий код в мой файл pom.xml, но я не могу найти этот файл.

<dependency> 
<groupId>commons-fileupload</groupId> 
<artifactId>commons-fileupload</artifactId> 
<version>1.2.2</version> 
</dependency> 
<dependency> 
<groupId>commons-io</groupId> 
<artifactId>commons-io</artifactId> 
<version>1.4</version> 
</dependency>

Спасибо за вашу помощь.

PD: Извините за мой английский.

Ответы [ 4 ]

1 голос
/ 04 июня 2013

Это сообщение было действительно полезным .

Вам необходимо обратить внимание на все детали. Все зависимости должны быть включены в WEB-INF / lib, а фильтр сервлета в web.xml должен быть правильно объявлен.

У меня были похожие проблемы, и я решил их, следуя советам на этом посту.

1 голос
/ 21 марта 2012

Если вы не можете найти pom.xml, значит, вы не создаете приложение с помощью maven, поэтому вы можете просто скопировать загруженные файлы jar в папку WEB-INF/lib.Загрузите файл commons-fileupload-1.2.2.jar и commons-io-1.4 и добавьте его в эту папку.

0 голосов
/ 21 марта 2012

Вы действительно должны добавить библиотеки commons-io и commons-fileupload. Вы скачиваете их по следующим ссылкам в виде файлов .jar. Затем вам нужно добавить файлы JAR в ваш проект.

http://commons.apache.org/io/

http://commons.apache.org/fileupload/

После добавления этих jar-файлов в ваш проект вы сможете запустить загрузку файлов.

0 голосов
/ 20 марта 2012

Вы добавили:

<filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

в файл web.xml и добавили commons-io и commons-fileupload в путь к своей библиотеке?

...