Return-Path: Delivered-To: apmail-cocoon-users-archive@www.apache.org Received: (qmail 94447 invoked from network); 29 Sep 2006 12:23:58 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 29 Sep 2006 12:23:58 -0000 Received: (qmail 16518 invoked by uid 500); 29 Sep 2006 12:23:54 -0000 Delivered-To: apmail-cocoon-users-archive@cocoon.apache.org Received: (qmail 16070 invoked by uid 500); 29 Sep 2006 12:23:52 -0000 Mailing-List: contact users-help@cocoon.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: users@cocoon.apache.org List-Id: Delivered-To: mailing list users@cocoon.apache.org Received: (qmail 16059 invoked by uid 99); 29 Sep 2006 12:23:52 -0000 Received: from idunn.apache.osuosl.org (HELO idunn.apache.osuosl.org) (140.211.166.84) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Sep 2006 05:23:52 -0700 X-ASF-Spam-Status: No, hits=2.3 required=5.0 tests=HTML_FONT_BIG,HTML_MESSAGE Received: from [194.7.38.248] ([194.7.38.248:42466] helo=mailserv.sofico.be) by idunn.apache.osuosl.org (ecelerity 2.1.1.8 r(12930)) with ESMTP id 82/21-13110-3501D154 for ; Fri, 29 Sep 2006 05:23:49 -0700 In-Reply-To: <6DD7194CCE91BB44A41318EA7D06151070E643@pegasus.olympus.borgus.nl> To: users@cocoon.apache.org Subject: RE: link to a file MIME-Version: 1.0 X-Mailer: Lotus Notes Release 7.0 August 18, 2005 Message-ID: From: Roel Croonenberghs Date: Fri, 29 Sep 2006 14:23:42 +0200 X-MIMETrack: Serialize by Router on domino2/sofico(Release 6.5.4FP2 | September 15, 2005) at 09/29/2006 02:23:49 PM, Serialize complete at 09/29/2006 02:23:49 PM Content-Type: multipart/alternative; boundary="=_alternative 00442C3DC12571F8_=" X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N --=_alternative 00442C3DC12571F8_= Content-Type: text/plain; charset="US-ASCII" If I do that, i ge the following error; Internal Server Error Message: null Description: java.lang.NullPointerException Sender: org.apache.cocoon.servlet.CocoonServlet Source: Cocoon Servlet Request URI download/test.pdf cause java.lang.NullPointerException request-uri /cocoontest/download/test.pdf stacktrace java.lang.NullPointerException at org.apache.catalina.connector.ResponseBase.setContentType(ResponseBase.java:874) at org.apache.catalina.connector.HttpResponseBase.setContentType(HttpResponseBase.java:853) at org.apache.catalina.connector.ResponseFacade.setContentType(ResponseFacade.java:197) at org.apache.cocoon.environment.http.HttpResponse.setContentType(HttpResponse.java:214) at org.apache.cocoon.environment.http.HttpEnvironment.setContentType(HttpEnvironment.java:216) at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupReader(AbstractProcessingPipeline.java:583) at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:515) at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479) at org.apache.cocoon.components.treeprocessor.sitemap.ReadNode.invoke(ReadNode.java:119) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84) at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84) at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:165) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108) at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108) at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307) at org.apache.cocoon.Cocoon.process(Cocoon.java:656) at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151) at java.lang.Thread.run(Thread.java:534) Apache Cocoon 2.1.4-dev > >2de question; I want the user to download the file, that > when teh user > >cliks the link, his browser opens a download dialog box so heb can > >choose where to save the file. > > > >how do I do that? > > To a large extent, that depends on the browser they're using > - for example, I have mine set to automatically download > files to a specific folder without prompting. > > More generally, though, if the browser has a plugin that can > handle the returned mime type it will open it in that; > otherwise it will download it. > There may also be a separate "download this link" option on > the RMB popup menu to allow it to be saved rather than opened. > If you want to force files to be downloaded rather than > handled by plugins, you could return application/octet-stream > as the mime type instead of the actual value. I use the following strategy, which should work for most browsers I believe: PS: {global:datadir} refers to a datadir element in map:pipelines/map:component-configurations/global-variables Kind regards, Geert Drs. G.P.H. Josten Consultant Daidalos BV Source of Innovation Hoekeindsehof 1-4 2665 JZ Bleiswijk Tel.: +31 (0) 10 850 1200 Fax: +31 (0) 10 850 1199 www.daidalos.nl KvK 27164984 De informatie - verzonden in of met dit emailbericht - is afkomstig van Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit bericht kunnen geen rechten worden ontleend. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org For additional commands, e-mail: users-help@cocoon.apache.org --=_alternative 00442C3DC12571F8_= Content-Type: text/html; charset="US-ASCII"
If I do that, i ge the following error;


Internal Server Error

Message: null

Description: java.lang.NullPointerException

Sender: org.apache.cocoon.servlet.CocoonServlet

Source: Cocoon Servlet

Request URI

download/test.pdf

cause

java.lang.NullPointerException

request-uri

/cocoontest/download/test.pdf

stacktrace

java.lang.NullPointerException
                at org.apache.catalina.connector.ResponseBase.setContentType(ResponseBase.java:874)
                at org.apache.catalina.connector.HttpResponseBase.setContentType(HttpResponseBase.java:853)
                at org.apache.catalina.connector.ResponseFacade.setContentType(ResponseFacade.java:197)
                at org.apache.cocoon.environment.http.HttpResponse.setContentType(HttpResponse.java:214)
                at org.apache.cocoon.environment.http.HttpEnvironment.setContentType(HttpEnvironment.java:216)
                at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupReader(AbstractProcessingPipeline.java:583)
                at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:515)
                at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
                at org.apache.cocoon.components.treeprocessor.sitemap.ReadNode.invoke(ReadNode.java:119)
                at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
                at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
                at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
                at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:165)
                at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
                at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
                at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
                at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:152)
                at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
                at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
                at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
                at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
                at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
                at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
                at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
                at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
                at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
                at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
                at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
                at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
                at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
                at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
                at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
                at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
                at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
                at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
                at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
                at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509)
                at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
                at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
                at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
                at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
                at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
                at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
                at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
                at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
                at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
                at java.lang.Thread.run(Thread.java:534)

Apache Cocoon 2.1.4-dev




> >2de question; I want the user to download the file, that
> when teh user
> >cliks the link, his browser opens a download dialog box so heb can
> >choose where to save the file.
> >
> >how do I do that?
>
> To a large extent, that depends on the browser they're using
> - for example, I have mine set to automatically download
> files to a specific folder without prompting.
>
> More generally, though, if the browser has a plugin that can
> handle the returned mime type it will open it in that;
> otherwise it will download it.  
> There may also be a separate "download this link" option on
> the RMB popup menu to allow it to be saved rather than opened.
> If you want to force files to be downloaded rather than
> handled by plugins, you could return application/octet-stream
> as the mime type instead of the actual value.

I use the following strategy, which should work for most browsers I
believe:

                <map:match pattern="download/*">
       <map:act type="set-header">
         <map:parameter name="Content-Type"
value="application/x-download"/>
         <map:parameter name="Content-Disposition" value="attachment ;
filename={1}"/>

         <map:read src="{global:datadir}{1}" />
       </map:act>
                </map:match>

PS: {global:datadir} refers to a datadir element in
map:pipelines/map:component-configurations/global-variables

Kind regards,
Geert
 

Drs. G.P.H. Josten
Consultant



Daidalos BV
Source of Innovation
Hoekeindsehof 1-4
2665  JZ  Bleiswijk
Tel.: +31 (0) 10 850 1200
Fax: +31 (0) 10 850 1199
www.daidalos.nl
KvK 27164984


De informatie - verzonden in of met dit emailbericht - is afkomstig van Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit bericht kunnen geen rechten worden ontleend.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


--=_alternative 00442C3DC12571F8_=--