1 Reply Latest reply on Nov 16, 2011 7:15 AM by Mahesh Bonagiri

    Rich:file upload - done label problem

    Vicky Potter Newbie

      Hi,

           

             I want to upload file into particular folder.

       

      For example the folder location  C:/UploadedFolder/

       

      First i select one text file like 'test1.txt' using rich:fileUpload component

      Then i check the file name exsit in UploadedFolder.

      If the file not exist, then upload the file into that folder and i want show 'test1.txt' successfully uploaded.

      Otherwise i want to show the 'test1.txt' file already exist.

       


      The uploadButtonAction() method called, when i press upload button, checked the file exist or not,

      But the doneLabelValue not set in page.


      <rich:fileUpload id="fileUpload"
                              binding="#{FileUploadDemo.uploadComponent}"
                              fileUploadListener="#{FileUploadDemo.uploadButtonAction}"                                                 
                              maxFilesQuantity="5"                      
                              immediateUpload="false" 
                              acceptedTypes="txt,png,jpeg,gif,pdf,doc"
                              noDuplicate="true"
                              doneLabel=""#{FileUploadDemo.doneLabelValue}" > 
      
       </rich:fileUpload>  
      

       

       

      public class FileUploadDemo
      {
      
          private List<UploadItem> uploadItems = new ArrayList<UploadItem>(); 
          private String doneLabelValue;
      
      
      public String uploadButtonAction(UploadEvent event)
      {        
              uploadItems = event.getUploadItems();
              FileInputStream fileInputStream = null;
                      
              for (UploadItem uploadItem : uploadItems)
              { 
                     String uploadedFileName = uploadItem.getFileName(); 
                     try
                     {
                      
                                String uploadedPath = "C:/UploadedFolder/";
                                File destinationFile = new File(uploadedPath + uploadedFileName);
                      
                                if (!destinationFile.exists())
                                {                   
                                         File file = uploadItem.getFile();
                                         fileInputStream = new FileInputStream(file);
                                         byte[] data = new byte[Integer.parseInt("" + file.length())];
                                         fileInputStream.read(data);
                                         FileUtils.writeByteArrayToFile(destinationFile, data);            
      
                                        doneLabelValue = uploadedFileName + "successfully uploaded";
                                }
                                else
                                {                     
                                         doneLabelValue = uploadedFileName + "file already exist";
                                } 
                  }
                  catch (Exception exception)
                  {
                           System.out.println("Exception occur while upload file");
                  }
                  finally
                  {
                      if (fileInputStream != null)
                      {
                          try
                          {
                                   fileInputStream.close();
                          }
                          catch (IOException ex)
                          {
                                  System.out.println("Exception occur ");
                          }
                      }
                  }
              }
              
              return "";
          }
      
         public String getDoneLabelValue() {
              return doneLabelValue;
          }
          public void setDoneLabelValue(String doneLabelValue) {
              this.doneLabelValue = doneLabelValue;
          }
      
      }
      

       

       

      Please help me.

      Thanks in advance.