2013-02-20 60 views
2

對於<rich:fileUpload>我無法調用listener。當我檢查螢火蟲控制檯時,發現它在無限的GET請求循環中。RichFaces fileUpload無法調用偵聽器

的web.xml:

<context-param> 
    <param-name>org.richfaces.fileUpload.maxRequestSize</param-name> 
    <param-value>1000000000</param-value> 
</context-param> 
<context-param> 
    <param-name>org.richfaces.fileUpload.createTempFiles</param-name> 
    <param-value>false</param-value> 
</context-param> 

的facelet:

<h:form enctype="multipart/form-data"> 
     <rich:fileUpload fileUploadListener="#{fileUploadController.listener}" id="upload" acceptedTypes="jpg, gif, png, bmp" 
       ontyperejected="alert('Only JPG, GIF, PNG and BMP files are accepted');" maxFilesQuantity="5"> 
       <a4j:ajax event="uploadcomplete" execute="@none" render="info" /> 
     </rich:fileUpload> 
    </h:form> 

輔助Bean:

public void listener(FileUploadEvent event) throws Exception{ 
UploadedFile item = event.getUploadedFile(); 
uploadFile.setLength(item.getData().length); 
uploadFile.setName(item.getName()); 
uploadFile.setData(item.getData()); 
writeFile(); 
} 

public void writeFile() { 

FileOutputStream fop = null; 
File file; 
try { 

    file = new File(fPath + uploadFile.getName()); 
    logger.info(fPath + uploadFile.getName()); 

    fop = new FileOutputStream(file); 
    if (!file.exists()) { 
     file.createNewFile(); 
    } 

    fop.write(uploadFile.getData()); 
    fop.flush(); 
    fop.close();  

} catch (IOException e) { 
    e.printStackTrace(); 

} finally { 
    try { 
     if (fop != null) { 
      fop.close(); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

我查了很多類似的問題,但沒有得到任何線索!

我使用RichFaces的版本4.2.2

+0

試着用一個簡單的''在它周圍。 – 2013-02-20 15:47:25

+0

@ChristopheRoussy這就是我使用它的方式。 – dShringi 2013-02-20 15:50:51

+0

嘗試不使用'enctype =「multipart/form-data」' – 2013-02-20 15:53:30

回答

1

你可以嘗試刪除下列線形成你的web.xml, 有人通過這樣做修復。

<filter> 
    <filter-name>Seam Multipart Filter</filter-name> 
    <filter-class>org.jboss.seam.web.MultipartFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>Seam Multipart Filter</filter-name> 
    <url-pattern>*.seam</url-pattern> 
</filter-mapping> 
相關問題