Hi

File upload depends on commons-fileupload, so one thing you could try
in update that library. Also, you can try move the file to a folder so
you can provide a filter mapping over all files in that folder.

Theoretically the filter shouldn't affect anything else...

regards,

Leonardo Uribe

2014-04-08 13:13 GMT+02:00  <[email protected]>:
> Hi, I'am using tomahawk-1.1.9 and JSF 1.2 for uploading file via 
> t:inputFileUpload. When I add following lines to my web.xml
>
>         <filter>
>             <filter-name>MyFacesExtensionsFilter</filter-name>
>             
> <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
>                 <init-param>
>                         <description>
>                             Set the size limit for uploaded files.
>                                 Format: 10  - 10 bytes
>                                         10k - 10 KB
>                                         10m - 10 MB
>                                         1g  - 1 GB
>                         </description>
>                         <param-name>uploadMaxFileSize</param-name>
>                         <param-value>20m</param-value>
>                     </init-param>
>         </filter>
>         <filter-mapping>
>             <filter-name>MyFacesExtensionsFilter</filter-name>
>           <servlet-name>Faces Servlet</servlet-name>
>             <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
>         </filter-mapping>
>
> It starts to corrupt Excel files during download. (When I opening downloaded 
> Excel spreadsheet it reports that it's corrupted and it has to be repaired). 
> In next step it repairs Excel but it's annoying to repair it every time.
>
> This is my download code.. It's not complete but main parts are contained.
>
> <h:commandLink 
> value="#{ms['win.list_transcription.prescriptionExportAndDownload']}" 
> actionListener="#{transcriptionBean.downloadExportPrescriptions}" 
> title="#{ms['win.list_transcription.prescriptionExportAndDownload']}"  />
>
> FacesContext fc = FacesContext.getCurrentInstance();
> HttpServletResponse response = (HttpServletResponse) 
> fc.getExternalContext().getResponse();
>
> response.reset();
> response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
> response.setContentLength(size);
> response.setContentType(StringUtils.isBlank(contentType) ? 
> DEFAULT_CONTENT_TYPE : contentType);
>
> OutputStream out = null;
> InputStream input = null;
>
> try {
>         input = new FileInputStream(file);
>
>         inputToOutputWriter(input, response, out);
>         } catch (Exception err) {
>                 err.printStackTrace();
>         } finally {
>                 if (deleteOnClose) {
>                         file.delete();
>                 }
> }
> fc.responseComplete();
>
> I don't know if it's possible to register ExtensionsFilter only for one jsf 
> page (import page). My attempts were not successfull. I tried for example 
> this, but it ends that on import_payments.jsf is no servlet present (no 
> action works).
>
>         <filter-mapping>
>             <filter-name>MyFacesExtensionsFilter</filter-name>
>           <servlet-name>Import Faces Servlet</servlet-name>
>             <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
>         </filter-mapping>
>          <servlet>
>                 <servlet-name>Import Faces Servlet</servlet-name>
>                 <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
>                 <load-on-startup>1</load-on-startup>
>         </servlet>
>         <servlet-mapping>
>                 <servlet-name>Import Faces Servlet</servlet-name>
>                 <url-pattern>/private/import_payments.jsf</url-pattern>
>         </servlet-mapping>
>         <servlet>
>                 <servlet-name>Faces Servlet</servlet-name>
>                 <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
>                 <load-on-startup>2</load-on-startup>
>         </servlet>
>         <servlet-mapping>
>                 <servlet-name>Faces Servlet</servlet-name>
>                 <url-pattern>*.jsf</url-pattern>
>         </servlet-mapping>
>
> Thank you
> Zdend

Reply via email to