Problem using rich:fileUpload..listener not working..
debashis_jboss_forum Mar 4, 2010 2:12 AMHi,
Having problem with rich:fileUpload fileUploadListener. Corresponding listerner in the backing bean is not working.
This is very urgent. Need immediate help..
Partial code is given below.
<rich:fileUpload width="100%" fileUploadListener="#{fileSourceConfigBean.fileUploadBean.listener}"
maxFilesQuantity="#{fileSourceConfigBean.fileUploadBean.uploadsAvailable}" id="srcFile"
immediateUpload="#{fileSourceConfigBean.fileUploadBean.autoUpload}"
acceptedTypes="#{fileSourceConfigBean.fileUploadBean.acceptedTypes}"
allowFlash="#{fileSourceConfigBean.fileUploadBean.useFlash}"
addControlLabel="Browse....">
<a4j:support event="onuploadcomplete" reRender="info" />
</rich:fileUpload>
------------------------------------------------------------------------------------------
The listener defined in FileUploadBean is as follows.
public void listener(UploadEvent event) throws Exception{
UploadItem item = event.getUploadItem();
String FullfileName = item.getFileName();
String fileName=FullfileName.substring(FullfileName.lastIndexOf("\\")+1);
log.info("File Name :" + fileName);
ExternalContext con = FacesContext.getCurrentInstance().getExternalContext();
ServletContext sCon = (ServletContext) con.getContext();
//String filepath = sCon.getRealPath(relativePath);
String filepath = sCon.getRealPath("/");
log.debug("Real Path :"+filepath);
log.info("Real File name with Path :"+filepath+fileName);
setFileNameWithPath(filepath+fileName);
//log.info("Real Path1 :"+filepath1);
File file = new File();
try{
java.io.File uploadFile = new java.io.File(filepath, fileName);
//log.info("uploadFile.getPath():::::" + uploadFile.getPath());
if(!uploadFile.exists()){
//log.info("inside !uploadFile.exists()");
FileInputStream fis = new FileInputStream(item.getFile());
//log.info("After 1");
//FileOutputStream out = new FileOutputStream(uploadFile);
FileOutputStream out = new FileOutputStream(filepath+fileName);
//FileOutputStream out = new FileOutputStream(fileName);
//log.info("After 2");
int bytes = 0;
byte[] bteFile = new byte[(int)event.getUploadItem().getFile().length()];
//log.info("Before 3");
while ((bytes = fis.read(bteFile)) != -1) {
out.write(bteFile, 0, bytes);
}
out.close();
file.setLength(event.getUploadItem().getFile().length());
file.setName(item.getFileName());
file.setData(bteFile);
file.setUploadedFile(uploadFile);
getFiles().add(file);
uploadsAvailable--;
}
} catch(Exception ex){
log.info("Exception Caught in fileUpload:" + ex.getMessage());
ex.printStackTrace();
}
}
Regards,
Debashis