On Tue, Mar 9, 2010 at 1:45 PM, DavidV <[email protected]> wrote:
> Any thoughts on this? Still trying to get it to work.
>
See the enclosed example code. Specifically, there's a dpp.gif file in
src/main/resources and in Boot.scala:
LiftRules.statelessDispatchTable.append {
case Req("image" :: name :: Nil, "gif", GetRequest) =>
() =>
for {
stream <- tryo(this.getClass.getResourceAsStream("/"+name+".gif"))
if null ne stream
} yield StreamingResponse(stream, () => stream.close,
stream.available, List("Content-Type" -> "image/gif"), Nil, 200)
}
If you put other GIF files in resources, the server will find and serve
them.
> Thanks
>
> On Mar 5, 2:56 pm, DavidV <[email protected]> wrote:
> > I have recreated a number of StreamingResponse methods from both the
> > Loop link above and the Lift book and I still can't seem to get the
> > desired effect. I have been able to get a PlainTextResponse to work
> > by using LiftRules.dispatch in the Boot, like so:
> >
> > LiftRules.dispatch.prepend {
> > case Req(("analysis" :: "inprocess" :: Nil), _, _) =>
> > () => Full(PlainTextResponse("test"))
> > }
> >
> > However, I am unable to get any sort of streaming response to work in
> > the particular snippet which contains the data I would like to use.
> > Here are some of the methods I've tried:
> >
> > def textResponse: Box[LiftResponse] = {
> > println("TEXT RESPONSE")
> > val ab = "text would go here"
> > Full(PlainTextResponse(ab,
> > ("Content-Type" -> "text/plain") :: Nil, 200
> > ))
> > }
> >
> > def streamingResponseFile: Box[LiftResponse] = {
> > println("STREAMING RESPONSE FILE")
> > val file: File = new File(
> > "C:\\Source\\trunk\\eclipse\\testLift\\src\\main\\webapp\\images\
> > \ultra.png"
> > )
> > val length = file.length
> > val fileInput = new java.io.FileInputStream(file)
> > Full(StreamingResponse(fileInput,
> > () => { fileInput.close },
> > length,
> > ("Content-Type" -> "image/png") :: Nil,
> > Nil,
> > 200)
> > )
> > }
> >
> > Do I have to make a LiftRules.dispatch function in the Boot in
> > addition to the StreamingResponse in my snippet?
> >
> > I am trying to download plain text, but it is variable and dependent
> > on some parameters and other variables in the particular Snippet
> > class. Would I have to pass that data into the boot method in order
> > to get the desired response? I would prefer to handle it entirely in
> > the snippet itself.
> >
> > Finally, I'm not really sure how exactly to handle the
> > Full(StreamingResponse) once I have created it in order to actually
> > download the data and save it to the client computer. Although I
> > assume the browser will handle this one I've formatted the Response
> > correctly and actually have it working.
> >
> > Thanks again,
> > David
> >
> > On Mar 4, 11:13 am, Marius <[email protected]> wrote:
> >
> > > If you want todownloadthrough Lift than yes you can use
> > > StreamingResponse, or simply any other LiftResponse (depending on your
> > > mime-type) and use LiftRules.dispatch mechanism. But you could also
> > > let the container to serve thefile. By default Lift is trying to
> > > serve .html, .xhtml, .htm, .xml etc.. You can write your own rules by
> > > setting
> >
> > > LiftRules.liftRequest = {
> > > case req => true // Pattern match whatever you like and return a
> > > Boolean
> >
> > > }
> >
> > > If Lift cannot find a resource for some reason and you want the
> > > container (or subsequent filters) to handle that you can set
> >
> > > LiftRules.passNotFoundToChain = true
> >
> > > On 4 mar., 17:09, DavidV <[email protected]> wrote:
> >
> > > > I am also looking todownloadafilefrom the server that is hosting
> > > > my Lift web app. There is a very useful fileUpload method in the
> > > > SHtml class and I was wondering if there may be something similar for
> > > > afiledownload? I was unable to find anything, and searching for
> > > > "Lift" or "Scala Liftdownload" on Google returns nothing but pages to
> > > >downloadthe libraries, plugins or source code. I suppose I could use
> > > > the StreamingResponse, but I am already saving thefileI need to the
> > > > server and it would be nice to be able todownloadit to any client
> > > > computer with the typical "Browse" button, similar to the upload,
> > > > Thanks,
> > > > David
> >
> > > > On Feb 14, 3:58 pm, Gang <[email protected]> wrote:
> >
> > > > > Thanks Tim, that's exactly what I'm looking for!
> >
> > > > > On Feb 14, 11:27 am, Timothy Perrett <[email protected]>
> wrote:
> >
> > > > > > See:
> >
> > > > > >
> http://blog.getintheloop.eu/2009/3/19/understanding-lift-s-streamingr...
> >
> > > > > > Construct the CSV in memory and just then stuff it into a
> streaming response as a byte array.
> >
> > > > > > Cheers, Tim
> >
> > > > > > On 14 Feb 2010, at 16:18, Gang wrote:
> >
> > > > > > > Hi,
> >
> > > > > > > I have a question and it may not be a pure Lift one. But since
> I'm
> > > > > > > working on a Lift app and this group is the most responsive one
> I have
> > > > > > > seen, might just try it here.
> >
> > > > > > > I need todownloaddata from database in CSV format. What is the
> best
> > > > > > > approach within Lift framework? Do I have to write the data on
> the
> > > > > > > server somewhere and then provide user with a link? I have
> tried to
> > > > > > > google "scala, lift,filedownload...", but could not come up
> with
> > > > > > > what I'm looking for. Maybe I didn't use the right key words
> in
> > > > > > > search? Thanks in advance!
> >
> > > > > > > Brs
> > > > > > > Gang
> >
> > > > > > > --
> > > > > > > You received this message because you are subscribed to the
> Google Groups "Lift" group.
> > > > > > > To post to this group, send email to [email protected].
> > > > > > > To unsubscribe from this group, send email to
> [email protected]<liftweb%[email protected]>
> .
> > > > > > > For more options, visit this group athttp://
> groups.google.com/group/liftweb?hl=en.-Hidequotedtext-
> >
> > > > > > - Show quoted text -
>
> --
> You received this message because you are subscribed to the Google Groups
> "Lift" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<liftweb%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/liftweb?hl=en.
>
>
--
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics
--
You received this message because you are subscribed to the Google Groups
"Lift" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/liftweb?hl=en.
servefile.tgz
Description: GNU Zip compressed data
