On Tue, Mar 9, 2010 at 1:45 PM, DavidV <david.v.villa...@gmail.com> 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 <david.v.villa...@gmail.com> 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 <marius.dan...@gmail.com> 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 <david.v.villa...@gmail.com> 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 <wangga...@gmail.com> wrote:
> >
> > > > > Thanks Tim, that's exactly what I'm looking for!
> >
> > > > > On Feb 14, 11:27 am, Timothy Perrett <timo...@getintheloop.eu>
> 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 lift...@googlegroups.com.
> > > > > > > To unsubscribe from this group, send email to
> liftweb+unsubscr...@googlegroups.com<liftweb%2bunsubscr...@googlegroups.com>
> .
> > > > > > > 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 lift...@googlegroups.com.
> To unsubscribe from this group, send email to
> liftweb+unsubscr...@googlegroups.com<liftweb%2bunsubscr...@googlegroups.com>
> .
> 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 lift...@googlegroups.com.
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en.

Attachment: servefile.tgz
Description: GNU Zip compressed data

Reply via email to