Ich versuche, so zu arbeiten, wie es im Benutzerhandbuch von primefaces dokumentiert ist, und einige Beiträge, die dort erstellt wurden.<p: fileUpload> gib mir immer null Inhalt
Upload file in JSF primefaces.
die environnement ist: JavaEE voll + JPA + JSF 2.2 + primefaces 4 + Glasfischen v4
Ich bin wieder zu veröffentlichen, weil ich jede Probe und Vorschlag versucht haben, die ich im Internet, ohne Erfolg gefunden zu haben.
Ich bin in der Lage, die Datei mit hochgeladenen Namen zu bekommen: event.getFile.getFileName, aber der Inhalt ist immer null
------------- Updates ---- ------------------------
Meine xhtml Seite:
<h:form enctype="multipart/form-data">
<p:outputLabel value="La photo :"/>
<p:fileUpload fileUploadListener="#{personController.upload}"
mode="advanced"
update="messages"
sizeLimit="100000"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>
<p:growl id="messages" showDetail="true"/>
</h:form>
meine Managed Bean:
@Named(value = "personController")
@SessionScoped
public class PersonController implements Serializable {
/**
* Creates a new instance of PersonController
*/
@Inject
private PersonneFacade personneService;
private Personne current;
private Personne newPerson;
private List<Personne> personnes;
public PersonController() {
}
public List<Personne> getAll(){
return personneService.findAll();
}
public void upload(FileUploadEvent event) {
FacesMessage msg = new FacesMessage("Success! ", event.getFile().getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);
// Do what you want with the file
System.out.println(event.getFile().getFileName());
System.out.println("le fichier " + event.getFile().getContents());
newPerson.setPhoto(event.getFile().getContents());
}
meine web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<!-- ############################################# -->
<!-- # File upload # -->
<!-- ############################################# -->
<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>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
</web-app>
sicher, ich habe auf meinem pom.xml:
<dependencies>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
wenn i i m triyng zum Hochladen auf dem Glasfischen Ausgabeprotokoll bekam:
INFO: mdmx.jpg
INFO: le fichier null
eine Idee über ??
Verwandte: http://stackoverflow.com/questions/8875818/how-to-use-primefaces-pfileupload-listener-method-is-never-invoked/8880083#8880083 – BalusC
Ich habe versucht, was Sie vorschlagen, aber kein Erfolg. Auf dem Chrome-Debug-Tool habe ich die HTTP-Parameter und es scheint richtig zu sein, der Inhaltstyp ist ein "Multipart/Form-Daten". Ich kann die Probleme nicht finden !! –
Ich habe die Quellquellen überprüft. Es sieht so aus, als ob deine 'Datei' eigentlich 'null' ist, was die NPE verursacht. Wenn Sie die richtigen Berechtigungseinstellungen (chmod & user/group rights) für '/ opt/upld' haben, ist es schwer zu erraten. – Manuel