Sure thing.
Is your app public?  I love to see what people have done with Lift...



On Sun, Jan 11, 2009 at 8:47 AM, Alli <[email protected]> wrote:

>
> Thanks chaps, that did the trick.
>
> Cheers,
> Alfred
>
> On Jan 11, 3:25 pm, Marius <[email protected]> wrote:
> > Ummm ... Does it really need to return a DispatchPf? It could create
> > internally the DispatchPF as just append it to LiftRules dispatch
> > list.
> >
> > On Jan 11, 5:09 pm, "David Pollak" <[email protected]>
> > wrote:
> >
> > > I think something like:
> > > createFileHandler(path: List[String], nameOfFileParam: String,
> > > returnContentType: String)(f: Array[Byte] => Array[Byte]): DispatchPF
> >
> > > would be a cool method.  It would build the DispatchPF for you and all
> you
> > > need do is supply the transformation function.  If you wanted to get
> fancy
> > > and do access control, etc., you'd have to write your own.
> >
> > > On Sun, Jan 11, 2009 at 7:00 AM, Marius <[email protected]>
> wrote:
> >
> > > > I wonder if it makes sense to have a built-in DispatchPF to ease up
> > > > things so that user to just provide a  (FileParamHolder =>
> > > > LiftResponse)
> >
> > > > perhaps something like:
> >
> > > > FIleUploader.init {
> >
> > > >  case (path, fileParamHolder ) => a LiftResponse
> >
> > > > }
> >
> > > > ... internally it will just add itsellf as a DispathPf
> >
> > > > Br's,
> > > > Marius
> >
> > > > On Jan 11, 3:43 pm, "David Pollak" <[email protected]>
> > > > wrote:
> > > > > Alli,
> > > > > Yes, I think your want to go with a DispatchPF to handle the
> destination
> > > > of
> > > > > the POST request from your Flash component.
> >
> > > > > DispatchPF {
> > > > >   case r @ Req("upload" :: "thing" :: Nil, "", PostRequent) if
> > > > > r.uploadedFiles.exists(_.name == "upload") =>
> > > > >     () => {
> > > > >     val uploadedFile = r.uploadedFiles.find(_.name == "upload").get
> > > > >     val fileBytes = uploadedFile.file
> > > > >     ... do stuff here
> > > > >     val newFileBytes: Array[Byte]
> > > > >     val headers: List[(String, String)]
> > > > >     Full(InMemoryResponse(newFileBytes, headers, Nil /* no cookies
> sent
> > > > back
> > > > > */, 200))
> > > > >     }
> >
> > > > > }
> >
> > > > > Thanks,
> >
> > > > > David
> >
> > > > > On Sun, Jan 11, 2009 at 4:52 AM, Alli <[email protected]>
> wrote:
> >
> > > > > > I'm not sure how i would hook SHtml.fileUpload into this because
> > > > > > swfupload lets me configure an URL
> > > > > > that it will post to for each file uploaded, I don't even  need a
> form
> > > > > > to do this (this is all flash/swf). I currently
> > > > > > have a LiftView subclass that handles it and is processing it
> like
> > > > > > this:
> >
> > > > > > S.request match {
> > > > > >    case Full(req) =>
> > > > > >      req.uploadedFiles.foreach { file: FileParamHolder =>
> > > > > >        println("Name: " + file.name)
> > > > > >        println("File name: " + file.fileName)
> > > > > >        resizeAndSave(file)
> > > > > >      }
> >
> > > > > >      case _ =>
> > > > > >    }
> >
> > > > > > I guess the only thing I need to change is using a custom
> dispatch
> > > > > > instead of the view in order to return my own LiftResponse
> instead of
> > > > > > a NodeSeq
> > > > > > back to the client.
> >
> > > > > > Cheers,
> > > > > > Alli
> >
> > > > > > On Jan 11, 12:37 pm, Marius <[email protected]> wrote:
> > > > > > > Alli are you using SHtml.fileUpload ... or you want to upload
> it
> > > > > > > "manually" processing everything in your dispatch? .. I'd opt
> in for
> > > > > > > SHtml.fileUpload because there is a bunch of stuff Lift does
> for you.
> >
> > > > > > > On Jan 11, 5:12 am, Alli <[email protected]> wrote:
> >
> > > > > > > > Yeah I think I need to add a custom dispatch function and
> make that
> > > > > > > > return my own response. I was actually
> > > > > > > > hoping I could do this straight from the snippet instead of
> having
> > > > to
> > > > > > > > redirect, makes the whole thing more complex.
> >
> > > > > > > > On Jan 11, 12:41 am, Marc Boschma 
> > > > > > > > <[email protected]<marc%[email protected]>
> <marc%[email protected] <marc%[email protected]>>
> > > > <marc%[email protected] <marc%[email protected]> <
> marc%[email protected] <marc%[email protected]>>>>
> > > > > > wrote:
> >
> > > > > > > > > I'm not an expert but I would model a Response class in
> much the
> > > > same
> >
> > > > > > > > > way as:
> >
> > > > > > > > >    package net.liftweb.http
> >
> > > > > > > > >    object PlainTextResponse {
> > > > > > > > >      def apply(text: String): PlainTextResponse =
> > > > > > > > > PlainTextResponse(text, Nil, 200)
> > > > > > > > >      def apply(text: String, code: Int): PlainTextResponse
> =
> > > > > > > > > PlainTextResponse(text, Nil, code)
> > > > > > > > >    }
> >
> > > > > > > > >    case class PlainTextResponse(text: String, headers:
> > > > List[(String,
> >
> > > > > > > > > String)], code: Int) extends LiftResponse {
> > > > > > > > >      def toResponse = {
> > > > > > > > >        val bytes = text.getBytes("UTF-8")
> > > > > > > > >        InMemoryResponse(bytes, ("Content-Length",
> > > > > > > > > bytes.length.toString) :: ("Content-Type", "text/plain") ::
> > > > headers,
> >
> > > > > > > > > Nil, code)
> > > > > > > > >      }
> > > > > > > > >    }
> >
> > > > > > > > > from TextResponse.scala. Look at InMemoryResponse or
> possibly
> > > > > > > > > StreamingResponse in Response.scala.
> >
> > > > > > > > > Marc
> >
> > > > > > > > > On 11/01/2009, at 4:27 AM, Alli wrote:
> >
> > > > > > > > > > Hey, I have been searching the list and also the
> liftweb.netwiki
> > > > > > and
> > > > > > > > > > haven't found a way to do this:
> >
> > > > > > > > > > I have a form to upload a file that I want to manipulate
> and
> > > > send
> > > > > > back
> > > > > > > > > > to the client. When sending it back I am using
> S.setHeader to
> > > > set
> > > > > > the
> > > > > > > > > > content type, disposition etc but I haven't found a way
> to
> > > > write
> > > > > > the
> > > > > > > > > > file back to the response. What I think I need is access
> to the
> > > > > > > > > > response's printwriter (response.getWriter()) instance.
> Any
> > > > help
> > > > > > would
> > > > > > > > > > be greatly appreciated.
> >
> > > > > > > > > > Cheers,
> > > > > > > > > > Alli
> >
> > > > > --
> > > > > Lift, the simply functional web frameworkhttp://liftweb.net
> > > > > Collaborative Task Managementhttp://much4.us
> > > > > Follow me:http://twitter.com/dpp
> > > > > Git some:http://github.com/dpp
> >
> > > --
> > > Lift, the simply functional web frameworkhttp://liftweb.net
> > > Collaborative Task Managementhttp://much4.us
> > > Follow me:http://twitter.com/dpp
> > > Git some:http://github.com/dpp
>
> >
>


-- 
Lift, the simply functional web framework http://liftweb.net
Collaborative Task Management http://much4.us
Follow me: http://twitter.com/dpp
Git some: http://github.com/dpp

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to