problem with rich:fileUpload
jeromej Oct 16, 2012 5:28 AMHi Ken,
PortletBridge : 3.1.0.Beta3
Richfaces : 4.2.3.CR1
JSF : 2.1.13
Exo : 3.5.3
When i use upload button, we stay client side with the url http://localhost:8080/s2e-portlet-demo-composants/faces/rfRes/fileUploadProgress?ln=org.richfaces&rf_fu_uid_alt=0.6986214399496665 answer is 200 OK 8ms
No action in listener.
In web.xml :
<context-param> | ||
<param-name>org.richfaces.fileUpload.maxRequestSize</param-name> | ||
<param-value>1000</param-value> | ||
</context-param> | ||
<context-param> | ||
<param-name>org.richfaces.fileUpload.createTempFiles</param-name> | ||
<param-value>true</param-value> | ||
</context-param> |
xhtml :
<h:form>
<h:panelGrid columns="2" columnClasses="top,top">
<rich:fileUpload fileUploadListener="#{fileUploadBean.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:panelGroup id="info" layout="block">
<rich:panel bodyClass="info">
<f:facet name="header">
<h:outputText value="Uploaded Files Info" />
</f:facet>
<h:outputText value="No files currently uploaded"
rendered="#{fileUploadBean.size==0}" />
<rich:dataGrid columns="1" value="#{fileUploadBean.files}"
var="file" rowKeyVar="row">
<rich:panel bodyClass="rich-laguna-panel-no-header">
<h:panelGrid columns="2">
<a4j:mediaOutput element="img" mimeType="image/jpeg"
createContent="#{fileUploadBean.paint}" value="#{row}"
style="width:100px; height:100px;" cacheable="false">
<f:param value="#{fileUploadBean.timeStamp}" name="time" />
</a4j:mediaOutput>
<h:panelGrid columns="2">
<h:outputText value="File Name:" />
<h:outputText value="#{file.name}" />
<h:outputText value="File Length(bytes):" />
<h:outputText value="#{file.length}" />
</h:panelGrid>
</h:panelGrid>
</rich:panel>
</rich:dataGrid>
</rich:panel>
<br />
<a4j:commandButton action="#{fileUploadBean.clearUploadData}"
render="info, upload" value="Clear Uploaded Data"
rendered="#{fileUploadBean.size>0}" />
</h:panelGroup>
</h:panelGrid>
</h:form>
FileUploadBean.java :
public class FileUploadBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private ArrayList<UploadedImage> files = new ArrayList<UploadedImage>();
public void paint(OutputStream stream, Object object) throws IOException {
stream.write(getFiles().get((Integer) object).getDonnees());
stream.close();
}
public void listener(FileUploadEvent event) throws Exception {
UploadedFile item = event.getUploadedFile();
UploadedImage file = new UploadedImage();
file.setLongueur(item.getData().length);
file.setNom(item.getName());
file.setDonnees(item.getData());
files.add(file);
}
public String clearUploadData() {
files.clear();
return null;
}
public int getSize() {
if (getFiles().size() > 0) {
return getFiles().size();
} else {
return 0;
}
}
public long getTimeStamp() {
return System.currentTimeMillis();
}
public ArrayList<UploadedImage> getFiles() {
return files;
}
public void setFiles(ArrayList<UploadedImage> files) {
this.files = files;
}
}
Do you've any idea ?
Thanks