1 Reply Latest reply on Dec 4, 2009 2:24 PM by Jaime Martin

    problem uploading a pdf file

    Jaime Martin Apprentice

      Hi:
      After uploading without any problem xml files now I´m trying to upload a pdf file from a form with rich:fileUpload.
      I´m not sure if this is due to a seam configuration issue or a richfaces problem. I´ve already have asked in
      richfaces forum
      and I post it as well here in case it is something related to seam app configuration.


      To start with this is my web.xml config:


          <filter>
              <filter-name>Seam Filter</filter-name>
              <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
              <init-param>
                  <param-name>maxRequestSize</param-name>
                  <param-value>104860000</param-value>
              </init-param>   
          </filter>
      
          <filter-mapping>
              <filter-name>Seam Filter</filter-name>
              <url-pattern>/*</url-pattern>
          </filter-mapping>
             
      
      <filter>
      <filter-name>Seam Multipart Filter</filter-name>
        <filter-class>org.jboss.seam.web.MultipartFilter2</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>Seam Multipart Filter</filter-name>
        <url-pattern>*.seam</url-pattern>
      </filter-mapping>
      



      and this is my components.xml:


          <web:multipart-filter create-temp-files="true"
                               max-request-size="104860000"
                               url-pattern="*.seam"/>





      In the form I have several fields, one of them is to upload a pdf or xml file:



         <h:form id="apoderado" styleClass="edit" enctype="multipart/form-data">
      ...
           <s:decorate id="asdf" template="layout/edit.xhtml">
       <div align="center">                                          
       <ui:define name="label">Fichero firma (pdf)</ui:define>
                  <rich:fileUpload id="upload" 
                   fileUploadListener="#{ApoderadoEdit.fileUploadListener}"
                        acceptedTypes="pdf,xml"
                     maxFilesQuantity="1">
                      <f:facet name="label">
                          <h:outputText value="{_KB}KB de {KB}KB cargados --- {mm}:{ss}" />
                      </f:facet>
                  </rich:fileUpload>
                  <img src="Captcha.jpg"/>
      </div>
      
      </s:decorate>
      ...
      


      And this is the listener:



      public void fileUploadListener(org.richfaces.event.UploadEvent event)
      {
          try{
          if(event==null){
              log.debug("null upload event");
              return;
          }
          UploadItem item = event.getUploadItem();
          String name = "unnamed_attachment";
          byte[] data = item.getData();
          generadorDirectorio();
          if (item.isFile()) {
              data =  item.getData();
              File file = item.getFile();
              name = FilenameUtils.getName(item.getFileName());
              String fileName=Util.PATH+name;
              File outputFile  = new java.io.File(fileName);
              FileReader in = new FileReader(file);
              FileWriter out = new FileWriter(outputFile);
              int c;
              while ((c = in.read()) != -1)
                 out.write(c);
      
              in.close();
              out.close();
          }
          }catch (Exception e) {
              e.printStackTrace();
          }
      }
      



      With xml files it works, but when I upload a pdf it saves a pdf with different size (bigger) and when I try to open it it asks for a Document open password. I have not configured anything relate to pdf file protection anywhere. In fact Original pdf selected to be uploaded has no protection at all.
      thanks in advance!