PrimeFaces p: fileUpload का उपयोग कैसे करें? श्रोता विधि कभी भी लागू नहीं होती है या UploadedFile अशक्त है / एक त्रुटि फेंकता है / उपयोग करने योग्य नहीं है


101

मैं प्राइमफेस का उपयोग करके एक फ़ाइल अपलोड करने की कोशिश कर रहा हूं, लेकिन fileUploadListenerअपलोड खत्म होने के बाद विधि को लागू नहीं किया जा रहा है।

यहाँ देखें:

<h:form>
    <p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}"
        mode="advanced" 
        update="messages"
        sizeLimit="100000" 
        allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>

    <p:growl id="messages" showDetail="true"/>
</h:form>

और बीन:

@ManagedBean
@RequestScoped
public class FileUploadController {

    public void handleFileUpload(FileUploadEvent event) {
        FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

}

मैंने विधि पर एक विराम बिंदु रखा है, लेकिन इसे कभी नहीं बुलाया जाता है। उपयोग करते समय mode="simple"और ajax="false", इसे लागू किया गया है, लेकिन मैं चाहता हूं कि यह उन्नत मोड में काम करे। मैं Netbeans और Glassfish 3.1 का उपयोग कर रहा हूं।

जवाबों:


224

कॉन्फ़िगर और समस्या निवारण कैसे करें यह <p:fileUpload>प्राइमफेस संस्करण पर निर्भर करता है।

सभी प्राइमफेस संस्करण

नीचे की आवश्यकताएँ सभी प्राइमफेस संस्करणों पर लागू होती हैं:

  1. सेट की जाने वाली जरूरतों का enctypeगुण । जब यह अनुपस्थित है, ajax अपलोड सिर्फ काम कर सकता है, लेकिन सामान्य ब्राउज़र व्यवहार अनिर्दिष्ट है और प्रपत्र संरचना और वेबब्रोसर मेक / संस्करण पर निर्भर है। बस हमेशा इसे सुरक्षित पक्ष पर निर्दिष्ट करें।<h:form>multipart/form-data

  2. उपयोग करते समय mode="advanced"(यानी अजाक्स अपलोड, यह डिफ़ॉल्ट है), फिर सुनिश्चित करें कि आप एक <h:head>(मास्टर) टेम्पलेट में हैं। यह सुनिश्चित करेगा कि आवश्यक जावास्क्रिप्ट फाइलें ठीक से शामिल हैं। इसके लिए mode="simple"(गैर-अजाक्स अपलोड) की आवश्यकता नहीं है , लेकिन यह अन्य सभी प्राइमफेस घटकों के लुक-ऑन'फिल और कार्यक्षमता को तोड़ देगा, इसलिए आप वैसे भी याद नहीं करना चाहते हैं।

  3. का उपयोग करते समय mode="simple"(यानी गैर ajax अपलोड), तो ajax पर किसी भी PrimeFaces आदेश बटन / द्वारा लिंक अक्षम होने चाहिए ajax="false", और आप का उपयोग करना चाहिए <p:fileUpload value>के साथ <p:commandButton action>के बजाय <p:fileUpload fileUploadListener>(PrimeFaces के लिए <= 7.x) या <p:fileUpload listener>(PrimeFaces के लिए> = 8.x)

तो, यदि आप (ऑटो) फ़ाइल को अजाक्स समर्थन (मन <h:head>!) के साथ अपलोड करना चाहते हैं :

<h:form enctype="multipart/form-data">
    <p:fileUpload fileUploadListener="#{bean.upload}" auto="true" /> // for PrimeFaces >= 8.x this should be listener instead of fileUploadListener 
</h:form>
public void upload(FileUploadEvent event) {
    UploadedFile uploadedFile = event.getFile();
    String fileName = uploadedFile.getFileName();
    String contentType = uploadedFile.getContentType();
    byte[] contents = uploadedFile.getContents(); // Or getInputStream()
    // ... Save it, now!
}

या यदि आप गैर-अजाक्स फ़ाइल अपलोड करना चाहते हैं:

<h:form enctype="multipart/form-data">
    <p:fileUpload mode="simple" value="#{bean.uploadedFile}" />
    <p:commandButton value="Upload" action="#{bean.upload}" ajax="false" />
</h:form>
private UploadedFile uploadedFile; // +getter+setter

public void upload() {
    String fileName = uploadedFile.getFileName();
    String contentType = uploadedFile.getContentType();
    byte[] contents = uploadedFile.getContents(); // Or getInputStream()
    // ... Save it, now!
}

ध्यान दें कि इस तरह के रूप ajax से संबंधित गुण है auto, allowTypes, update, onstart, oncomplete, आदि कर रहे हैं पर ध्यान नहीं दिया में mode="simple"। इसलिए उन्हें ऐसे मामले में निर्दिष्ट करना अनावश्यक है।

यह भी ध्यान दें कि आपको उपर्युक्त विधियों के अंदर फ़ाइल सामग्री को तुरंत पढ़ना चाहिए और बाद में HTTP अनुरोध द्वारा लागू अलग बीन विधि में नहीं। ऐसा इसलिए है क्योंकि अपलोड की गई फ़ाइल सामग्री अनुरोधित है और बाद में / अलग HTTP अनुरोध में अनुपलब्ध है। बाद के अनुरोध में इसे पढ़ने का कोई भी प्रयास java.io.FileNotFoundExceptionअस्थायी फ़ाइल के साथ समाप्त हो जाएगा ।


प्रधानमंत्री 8.x

कॉन्फ़िगरेशन नीचे दिए गए 5.x संस्करण जानकारी के समान है, लेकिन अगर आपके श्रोता को नहीं बुलाया जाता है, तो जांचें कि क्या एट्रीब्यूट कहा जाता है listenerऔर नहीं (पूर्व 8.x संस्करणों की तरह)fileUploadListener

प्रधानमंत्री 5.x

यदि आप JSF 2.2 का उपयोग कर रहे हैं और इसके लिए आपको faces-config.xmlJSF 2.2 संस्करण के अनुरूप भी घोषित किया गया है, तो किसी भी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं है । आपको प्राइमफेस फ़ाइल अपलोड फ़िल्टर की बिल्कुल भी आवश्यकता नहीं है। मामले में यह आपके लिए स्पष्ट नहीं है कि उपयोग किए गए लक्ष्य सर्वर के आधार पर जेएसएफ को ठीक से कैसे स्थापित करें और कॉन्फ़िगर करें, मावेन के माध्यम से जेएसएफ लाइब्रेरी को ठीक से कैसे स्थापित करें और कॉन्फ़िगर करें? और हमारे जेएसएफ विकी पेज का "इंस्टालेशन जेएसएफ" सेक्शन

यदि आप हालांकि अभी तक JSF 2.2 का उपयोग नहीं कर रहे हैं और आप इसे अपग्रेड नहीं कर सकते हैं (पहले से ही सर्वलेट 3.0 संगत कंटेनर पर होने पर यह सरल होना चाहिए), तो आपको मैन्युअल रूप से नीचे दिए गए प्राइमफेस फ़ाइल अपलोड फ़िल्टर को पंजीकृत करने की आवश्यकता है web.xml(यह मल्टी पार्स करेगा भाग अनुरोध और नियमित अनुरोध पैरामीटर मानचित्र भरें ताकि FacesServletसामान्य रूप से काम करना जारी रह सके):

<filter>
    <filter-name>primeFacesFileUploadFilter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>primeFacesFileUploadFilter</filter-name>
    <servlet-name>facesServlet</servlet-name>
</filter-mapping>

<servlet-name>के मान facesServletमें वास्तव में मूल्य से मेल खाना चाहिए <servlet>के प्रवेश javax.faces.webapp.FacesServletही में web.xml। इसलिए यदि यह उदाहरण है Faces Servlet, तो आपको मिलान के अनुसार इसे संपादित करने की आवश्यकता है।


प्रधानमंत्री 4.x

प्राइमफेस 5.x जैसी ही कहानी 4.x पर भी लागू होती है।

द्वारा अपलोड की गई फ़ाइल सामग्री प्राप्त करने में केवल एक संभावित समस्या है UploadedFile#getContents()। यह nullतब वापस आएगा जब Apache Commons FileUpload के बजाय देशी एपीआई का उपयोग किया जाएगा। आपको UploadedFile#getInputStream()इसके बजाय उपयोग करने की आवश्यकता है । यह भी देखें कि पी से अपलोड की गई छवि कैसे डालें: MySQL में BLOB के रूप में fileUpload?

देशी एपीआई के साथ एक और संभावित समस्या तब प्रकट होगी जब अपलोड घटक एक ऐसे रूप में मौजूद होगा जिस पर एक अलग "नियमित" अजाक्स अनुरोध निकाल दिया जाता है जो अपलोड घटक को संसाधित नहीं करता है। यह भी देखें कि फ़ाइल अपलोड प्राइमफेस 4.0 / JSF 2.2.x - javax.servlet.ServletException में AJAX के साथ काम नहीं करता है: अनुरोध सामग्री-प्रकार एक मल्टीपार्ट / फॉर्म-डेटा नहीं है

दोनों ही समस्याओं को Apache Commons FileUpload पर स्विच करके भी हल किया जा सकता है। विस्तार के लिए PrimeFaces 3.x अनुभाग देखें।


प्रधानमंत्री 3.x

यह संस्करण JSF 2.2 / सर्वलेट 3.0 मूल फ़ाइल अपलोड का समर्थन नहीं करता है। आपको Apache Commons FileUpload को मैन्युअल रूप से इंस्टॉल करना होगा और फ़ाइल अपलोड फ़िल्टर को स्पष्ट रूप से पंजीकृत करना होगा web.xml

आपको निम्न पुस्तकालयों की आवश्यकता है:

जिन्हें वेबएप के रनटाइम क्लासपाथ में मौजूद होना चाहिए। मावेन का उपयोग करते समय, सुनिश्चित करें कि वे कम से कम रनटाइम स्कॉप्ड हैं (संकलन का डिफ़ॉल्ट दायरा भी अच्छा है)। जब मैन्युअल रूप से JARs के चारों ओर ले जाते हैं, तो सुनिश्चित करें कि वे /WEB-INF/libफ़ोल्डर में समाप्त होते हैं ।

फ़ाइल अपलोड फ़िल्टर पंजीकरण विवरण यहां दिए गए प्राइमफेस 5.x अनुभाग में पाया जा सकता है। यदि आप प्राइमफेस 4+ का उपयोग कर रहे हैं और आप स्पष्ट रूप से JSF 2.2 / सर्वलेट 3.0 देशी फ़ाइल अपलोड के बजाय Apache Commons FileUpload का उपयोग करना चाहते हैं, तो आपको उल्लिखित पुस्तकालयों के आगे की आवश्यकता है और नीचे दिए गए संदर्भ पैरम को भी फ़िल्टर करें web.xml:

<context-param>
    <param-name>primefaces.UPLOADER</param-name>
    <param-value>commons</param-value><!-- Allowed values: auto, native and commons. -->
</context-param>

समस्या निवारण

यदि यह अभी भी काम नहीं करता है, तो यहां प्राइमफेस कॉन्फ़िगरेशन के असंबंधित अन्य संभावित कारण हैं:

  1. सिर्फ अगर आप PrimeFaces फाइल अपलोड फिल्टर का उपयोग कर रहे हैं: एक और है Filterअपने webapp में जो चलाता है से पहले PrimeFaces फाइल अपलोड फिल्टर और पहले से ही जैसे बुला द्वारा अनुरोध शरीर का सेवन किया है getParameter(), getParameterMap(), getReader(), आदि। एक अनुरोध निकाय को केवल एक बार पार्स किया जा सकता है। जब आप फ़ाइल अपलोड फ़िल्टर अपना काम करने से पहले उन तरीकों में से एक को कॉल करते हैं, तो फ़ाइल अपलोड फ़िल्टर को एक खाली अनुरोध निकाय मिलेगा।

    इसे ठीक करने के लिए, आपको <filter-mapping>फ़ाइल फ़िल्टर फ़िल्टर को अन्य फ़िल्टर से पहले डालना होगा web.xml। यदि अनुरोध अनुरोध नहीं है multipart/form-data, तो फ़ाइल अपलोड फ़िल्टर बस जारी रहेगा जैसे कि कुछ भी नहीं हुआ। यदि आप ऐसे फ़िल्टर का उपयोग करते हैं जो स्वचालित रूप से जोड़े जाते हैं, क्योंकि वे एनोटेशन (जैसे कि सुंदर जगह) का उपयोग करते हैं, तो आपको web.xml के माध्यम से स्पष्ट आदेश जोड़ने की आवश्यकता हो सकती है। WAR में एनोटेशन का उपयोग करके निष्पादन के सर्वलेट फ़िल्टर ऑर्डर को कैसे परिभाषित करें देखें

  2. यदि आप प्राइमफेस फाइल अपलोड फिल्टर का उपयोग कर रहे हैं, केवल तभी: आपके वेबऐप Filterमें एक और है जो प्राइमफेस फाइल अपलोड फिल्टर से पहले चलता है और एक RequestDispatcher#forward()कॉल किया है । आमतौर पर, URL फिर से फ़िल्टर करते हैं जैसे कि PrettyFaces ऐसा करते हैं। यह FORWARDडिस्पैचर को ट्रिगर करता है , लेकिन फ़िल्टर REQUESTडिस्पैचर पर डिफ़ॉल्ट रूप से सुनता है ।

    इसे ठीक करने के लिए, आपको फ़ॉरवर्डिंग फ़िल्टर से पहले प्राइमफेस फ़ाइल अपलोड फ़िल्टर डालना होगा , या FORWARDडिस्पैचर पर भी सुनने के लिए प्राइमफेस फ़ाइल अपलोड फ़िल्टर को फिर से कॉन्फ़िगर करना होगा :

    <filter-mapping>
        <filter-name>primeFacesFileUploadFilter</filter-name>
        <servlet-name>facesServlet</servlet-name>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    
  3. एक नेस्टेड है <h:form>। यह HTML में अवैध है और ब्राउज़र व्यवहार अनिर्दिष्ट है। अधिक बार, ब्राउज़र सबमिट पर अपेक्षित डेटा नहीं भेजेगा। सुनिश्चित करें कि आप घोंसले के शिकार नहीं हैं <h:form>। यह पूरी तरह से फॉर्म की परवाह किए बिना है enctype। बस घोंसले नहीं बनाते हैं।

यदि आपको अभी भी समस्या हो रही है, तो HTTP ट्रैफ़िक को डीबग करें। Webbrowser के डेवलपर टूलसेट को खोलें (Chrome / Firebug23 + / IE9 + में F12 दबाएं) और नेट / नेटवर्क अनुभाग जांचें। यदि HTTP भाग ठीक दिखता है, तो JSF कोड डीबग करें। एक ब्रेकपॉइंट लगाएं FileUploadRenderer#decode()और वहां से आगे बढ़ें ।


अपलोड की गई फ़ाइल सहेज रहा है

आखिरकार आपको यह काम करने के लिए मिला, आपका अगला सवाल शायद "कैसे / कहां मैं अपलोड की गई फ़ाइल को बचाऊं?" जैसा होगा। खैर, यहां जारी रखें: जेएसएफ में अपलोड की गई फ़ाइल को कैसे बचाया जाए


2
एक अन्य कारण यह हो सकता है कि आपने web.xmlप्राइमफेसर्स यूजर गाइड के अनुसार प्राइमफेस अपलोड फिल्टर को रजिस्टर नहीं किया है । क्या आपने इसे वैसे भी पढ़ा? हालांकि यह स्पष्ट नहीं होगा कि mode="simple"आपके लिए काम क्यों करता है।
BalusC

1
हाँ, मैंने इसे पढ़ा है और मैंने फ़िल्टर को पंजीकृत किया है, लेकिन मैंने अभी देखा कि सर्वर "SEVERE: WebModule [/ EventsCalendary] PWC1270: को शुरू करते समय यह मुझे एक त्रुटि दे रहा है: अपवाद शुरू करने वाला फ़िल्टर प्राइमफेस फाइलफ़्लोड फ़िल्टर" मुझे ऐसा लगता है कि नहीं इसे पहले देख लेना। इस त्रुटि को हल करने के लिए कोई सुझाव?
रोड्रिगो कैवलकांटे

2
शायद फ़िल्टर मैपिंग गलत है। जैसा आपने निश्चित किया है <servlet-name>, उस पर मैप करना होगा । यह अधिकांश आईडीई / कोड-जनरेटरों द्वारा चूक करता है , लेकिन यह उतना अच्छा या कुछ हो सकता है जो नामकरण परंपराओं की अधिक पुष्टि करता है। FacesServletweb.xmlFaces ServletfacesServlet
बालुसक

2
नेवरमाइंड ने क्लासपैथ और कॉमन्स-आईओ में कॉमन्स-फाइलअप लोड जोड़कर इसे हल किया, क्या कहीं भी यह कह रहा है कि इन पुस्तकालयों की आवश्यकता है? वैसे भी, अभी सब कुछ ठीक काम कर रहा है, विधि को बुलाया जा रहा है जैसे यह माना जाता था, धन्यवाद।
रोड्रिगो कैवलकांटे

1
तो यह सब इस स्थिति के साथ आया कि मैं टॉमई और जेबॉस में एक ही कॉन्फिगर करता हूं .. forum.primefaces.org/viewtopic.php?f=3&t=43798
दिमित्री एलेक्जेंड्रोव

30

तुम बहुत सुंदर का उपयोग कर रहे हैं? फिर फॉरवर्ड में डिस्पैचर सेट करें:

<filter-mapping>
   <filter-name>PrimeFaces FileUpload Filter</filter-name>
   <servlet-name>Faces Servlet</servlet-name>
   <dispatcher>FORWARD</dispatcher>
</filter-mapping>

यह अभी भी एक मुद्दा है जब ओसीपी रिवाइराइट के साथ उपयोग किया जाता है। मैं आप पर एक बीयर का एहसान करता हूँ :)
15

7

एक बिंदु जिसका मैंने प्रधानमंत्री 3.4 और नेटबीन्स 7.2 के साथ देखा है:

फ़ंक्शन हैंडल के लिए नेटबींस ऑटो-भरे हुए मापदंडों को निकालें (ईवेंट लोड करें) (ईवेंट) अन्यथा घटना शून्य हो सकती है।

<h:form>
    <p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload(event)}"
        mode="advanced" 
        update="messages"
        sizeLimit="100000" 
        allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>

    <p:growl id="messages" showDetail="true"/>
</h:form>


0

मेरा प्राइमफेस 5.3 के साथ एक ही मुद्दा था और मैं बिना किसी नतीजे के BalusC द्वारा बताए गए सभी बिंदुओं से गुजरा। मैंने FileUploadRenderer # डीकोड () को डीबग करने की उनकी सलाह का पालन किया और मुझे पता चला कि मेरा web.xml अप्रमाणित रूप से सेट था

<context-param>
  <param-name>primefaces.UPLOADER</param-name>
  <param-value>auto|native|commons</param-value>
</context-param>

परम-मूल्य इन 3 मूल्यों में से 1 होना चाहिए, लेकिन उनमें से सभी नहीं !! पूरे संदर्भ-परम अनुभाग को हटाया जा सकता है और डिफ़ॉल्ट ऑटो होगा


0

bean.xhtml

    <h:form enctype="multipart/form-data">    
<p:outputLabel value="Choose your file" for="submissionFile" />
                <p:fileUpload id="submissionFile"
                    value="#{bean.file}"
                    fileUploadListener="#{bean.uploadFile}" mode="advanced"
                    auto="true" dragDropSupport="false" update="messages"
                    sizeLimit="100000" fileLimit="1" allowTypes="/(\.|\/)(pdf)$/" />

</h:form>

Bean.java

@ManagedBean

@ देखा गया सार्वजनिक वर्ग सबमिशन लागू करने योग्य सीरियल {

private UploadedFile file;

//Gets
//Sets

public void uploadFasta(FileUploadEvent event) throws FileNotFoundException, IOException, InterruptedException {

    String content = IOUtils.toString(event.getFile().getInputstream(), "UTF-8");

    String filePath = PATH + "resources/submissions/" + nameOfMyFile + ".pdf";

    MyFileWriter.writeFile(filePath, content);

    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
            event.getFile().getFileName() + " is uploaded.", null);
    FacesContext.getCurrentInstance().addMessage(null, message);

}

}

web.xml

    <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<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>

क्या आप बता सकते हैं कि यह एक उत्तर क्यों है? यह केवल कोड है, स्पष्टीकरण नहीं है या जो भी है
कुक्टेलजे

# "{bean.uploadFile}" बनाम "# {bean.uploadFasta}", अपडेट = "संदेश" को हटा दें और यह (केवल) मेरे लिए काम करेगा!
रोमस्की

0

मेरे लिए यहां कोई भी सुझाव मददगार नहीं था। इसलिए मुझे प्राइमफेस को डिबग करना पड़ा और पाया कि समस्या का कारण था:

java.lang.IllegalStateException: No multipart config for servlet fileUpload

तब मैंने web.xml में अपने चेहरे सर्वलेट में अनुभाग जोड़ा है। ताकि समस्या तय हो गई:

<servlet>
    <servlet-name>main</servlet-name>

        <servlet-class>org.apache.myfaces.webapp.MyFacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        <multipart-config>
            <location>/tmp</location>
            <max-file-size>20848820</max-file-size>
            <max-request-size>418018841</max-request-size>
            <file-size-threshold>1048576</file-size-threshold>
        </multipart-config>
    </servlet>

0

मेरे पास एक ही मुद्दा था, इस तथ्य के कारण कि मेरे पास इस पोस्ट में वर्णित सभी कॉन्फ़िगरेशन थे, लेकिन मेरे मामले में ऐसा इसलिए था क्योंकि मेरे पास दो jquery आयात थे (उनमें से एक प्राइमफेस की क्वेरी थी) जिससे फाइलों को अपलोड करने के लिए संघर्ष हुआ था।

प्राइमस्पेस जेकरी संघर्ष देखें


क्या आपको ब्राउज़र डेवलपर कंसोल में तब कोई विशिष्ट त्रुटि नहीं मिली थी?
कुकटेलजे

@ कुकटेलजे ने यही सांत्वना दिखाई: अनकट टाइप टाइप: ऑब्जेक्ट [ऑब्जेक्ट ऑब्जेक्ट] में कोई विधि नहीं है 'फाइलअपलोड'
क्रिश्चियन अल्तमिरानो अयाला

0

Tomee या बिलाव और न यह काम कर रहा हो सकता है का उपयोग कर लोगों के लिए, बनाने का प्रयास करें context.xml में META-INF और जोड़ने allowCasualMultipartParsing = "true"

<?xml version="1.0" encoding="UTF-8"?>
<Context allowCasualMultipartParsing="true">
  <!-- empty or not depending your project -->
</Context>

यह एक गलत फ़िल्टर कॉन्फ़िगरेशन / ऑर्डर करने के लिए चारों ओर का काम है।
बालुसक

हाय @BalusC, आप हमें और अधिक स्पष्टीकरण दे सकते हैं? क्या इस काम के आसपास कोई बेहतर तरीका है?
जेवियर लैम्ब्रोस

इस प्रश्न में मेरा उत्तर देखें।
बालुसक

0

JBoss 7.2 (अंडरट्रॉ) और प्राइमफेस के साथ 6.0 org.primefaces.webapp.filter.FileUploadFilter को web.xml से हटा दिया जाना चाहिए और संदर्भ पैराम फाइल अपलोडर को मूल पर सेट किया जाना चाहिए।

<context-param>
    <param-name>primefaces.UPLOADER</param-name>
    <param-value>native</param-value>
</context-param>

चाहिए? क्या आपको विशिष्ट त्रुटियां मिलती हैं यदि आप नहीं करते हैं?
कुकटेलजे

हां, मेरा FileUploadEvent इस बदलाव के बिना आह्वान नहीं करता है।
एलेक्स डी

यह एक स्पष्ट त्रुटि नहीं है, जो कि अप्रत्याशित व्यवहार है
कुक्टेलजे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.