rich:fileUpload
sayale Oct 15, 2008 6:10 AMHello everybody.
I have a problem with my rich:fileUpload.
I use tomcat server 6.0.18, java 6 and richfaces 3.2.1
on my local server everything works fine, but if i load my content on the tomcat on my webserver the fileupload message says done, but my preview says no files currently uploaded.
if anybody have a solution for this i will be very lucky.
my facelets code
<h:form>
 <h:panelGrid columns="2">
 <rich:fileUpload id="upload"
 acceptedTypes="#{fileUploadBean.acceptedTypes}"
 disabled="#{fileUploadBean.disabled}"
 autoclear="true"
 required="#{fileUploadBean.required}"
 requiredMessage="#{fileUploadBean.requiredMessage}"
 rendered="#{fileUploadBean.rendered}"
 listHeight="#{fileUploadBean.listHeight}"
 listWidth="#{fileUploadBean.listWidth}"
 fileUploadListener="#{fileUploadBean.fileUploadListener}"
 maxFilesQuantity="#{fileUploadBean.maxFilesQuantity}"
 immediateUpload="#{fileUploadBean.immediateUpdate}"
 addControlLabel="#{fileUploadBean.addControlLabel}"
 clearAllControlLabel="#{fileUploadBean.clearAllControlLabel}"
 clearControlLabel="#{fileUploadBean.clearControlLabel}"
 stopEntryControlLabel="#{fileUploadBean.stopEntryControlLabel}"
 uploadControlLabel="#{fileUploadBean.uploadControlLabel}">
 <a4j:support event="onuploadcomplete"
 reRender="info" />
 <f:facet name="progress">
 <rich:progressBar style="height: 10px; width: 250px;">
 </rich:progressBar>
 </f:facet>
 <f:facet name="label">
 <h:outputText value="{_KB}KB from {KB}KB uploaded --- {mm}:{ss}" />
 </f:facet>
 </rich:fileUpload>
 <h:panelGroup id="info">
 <rich:panel>
 <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.files1}"
 var="file" rowKeyVar="row">
 <rich:panel>
 <h:panelGrid columns="1">
 <a4j:mediaOutput cacheable="false" element="img" mimeType="image/jpeg"
 createContent="#{fileUploadBean.paint}" value="#{row}"
 style="width:100px; "/>
 </h:panelGrid>
 </rich:panel>
 </rich:dataGrid>
 </rich:panel>
 <rich:spacer height="3" />
 <br />
 <a4j:commandButton action="#{fileUploadBean.clearUploadData}"
 reRender="info, upload, media"
 value="Fotos entfernen" rendered="#{fileUploadBean.size>0}" />
 </h:panelGroup>
 </h:panelGrid>
 </h:form>
and my bean
public class FileUploadBean {
 private boolean disabled;
 private boolean autoclear;
 private boolean rendered;
 private boolean required;
 private String acceptedTypes;
 private String requiredMessage;
 private String listHeight;
 private boolean immediateUpdate;
 private String listWidth;
 private String addControlLabel;
 private String clearAllControlLabel;
 private String clearControlLabel;
 private String stopEntryControlLabel;
 private String uploadControlLabel;
 private List<MyDocument> files1;
 private Integer maxFilesQuantity;
 String url = "jdbc:mysql://localhost:3306/";
 String db = "application";
 String driver = "com.mysql.jdbc.Driver";
 String user = "root";
 String pass = "rh7QrVwtu1KOOlda";
 Connection con = null;
 Statement st;
 ResultSet res;
 public void loadDriver() throws SQLException {
 try {
 Class.forName(driver);
 con = (Connection) DriverManager.getConnection(url + db, user, pass);
 } catch (Exception s) {
 System.out.println("Error in loading driver: " + s);
 }
 }
 public FileUploadBean() {
 disabled = false;
 autoclear = false;
 rendered = true;
 required = false;
 immediateUpdate = false;
 acceptedTypes = "jpg, png";
 requiredMessage = "requiredMessage";
 listHeight = "65px";
 listWidth = "350px";
 addControlLabel = "Hinzufügen";
 clearAllControlLabel = "Alle entfernen";
 clearControlLabel = "entfernen";
 stopEntryControlLabel = "Stop";
 uploadControlLabel = "Hochladen";
 maxFilesQuantity = 1;
 files1 = new ArrayList<MyDocument>();
 }
 public List<MyDocument> getFiles1() {
 return files1;
 }
 public void setFiles1(List<MyDocument> files1) {
 this.files1 = files1;
 }
 public Integer getMaxFilesQuantity() {
 return maxFilesQuantity;
 }
 public void setMaxFilesQuantity(Integer maxFilesQuantity) {
 this.maxFilesQuantity = maxFilesQuantity;
 }
 public void fileUploadListener(UploadEvent event) throws IOException {
 UploadItem item = event.getUploadItem();
 /*
 * if you have createTempFiles context param defined with true -
 * you should use getFile rather than getData in your listener
 */
 if (item != null && item.getData() != null) {
 MyDocument fileData = new MyDocument();
 fileData.setContent(item.getData());
 fileData.setLength(item.getData().length);
 fileData.setName(FilenameUtils.getName(item.getFileName()));
 getFiles1().add(fileData);
 maxFilesQuantity--;
 }
 }
 public void paint(OutputStream stream, Object object) throws IOException {
 stream.write(((MyDocument) getFiles1().get((Integer) object)).getContent());
 }
 public Integer getSize() {
 return getFiles1().size();
 }
 public String clearUploadData() {
 files1.clear();
 maxFilesQuantity = 1;
 return null;
 }
//getters an setters
thank you all
 
    