मैं प्राइमफ़ेस उपयोगकर्ता मार्गदर्शिका में दस्तावेज़ों की तरह काम करने की कोशिश कर रहा हूं, और वहां स्थापित कुछ पोस्ट हैं।<p: fileUpload> हमेशा मुझे शून्य सामग्री दें
Upload file in JSF primefaces।
environnement है: javaee पूर्ण + जेपीए + JSF 2.2 + primefaces 4 + glassfish v4
मैं फिर से पोस्टिंग, क्योंकि मैं, हर नमूना और सुझाव मैं वेब पर पाया है की कोशिश की है सफलता के बिना हूँ।
मैं सक्षम हूँ, के साथ अपलोड नाम फ़ाइल प्राप्त करने के लिए: event.getFile.getFileName, लेकिन सामग्री हमेशा अशक्त
------------- अपडेट है ---- ------------------------
मेरे एक्सएचटीएमएल पेज:
<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>
अपने प्रबंधित सेम:
@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());
}
मेरा 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>
यकीन है कि मैं अपने 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>
जब मैं अपलोड करने के लिए मैं glassfish उत्पादन लॉग पर मिला triyng हूँ:
INFO: mdmx.jpg
INFO: le fichier null
के बारे में किसी भी विचार ??
संबंधित: http://stackoverflow.com/questions/8875818/how-to-use-primefaces-pfileupload-listener-method-is-never-invoked/8880083#8880083 – BalusC
मैं कोशिश की है आप क्या सुझाव देते हैं, लेकिन कोई सफलता नहीं। क्रोम डीबग टूल पर मुझे http पैरामीटर मिलते हैं और यह सही लगता है, सामग्री प्रकार एक "मल्टीपार्ट/फॉर्म-डेटा" है। मुझे समस्याएं नहीं मिल रही हैं !! –
मैंने प्राइमफ़ेस स्रोत की जांच की है। ऐसा लगता है कि आपकी 'फ़ाइल' वास्तव में 'शून्य' है जो एनपीई का कारण बनती है। यदि आपके पास '/ opt/upld' के लिए सही अनुमति सेटअप (chmod और उपयोगकर्ता/समूह अधिकार) हैं तो अनुमान लगाना मुश्किल है। – Manuel