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