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" <feeder.of.the.be...@gmail.com>
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 <allilis...@gmail.com> 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 <marius.dan...@gmail.com> 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 <allilis...@gmail.com> 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 
> > > > <marc+lift...@boschma.cx<marc%2blift...@boschma.cx>>
> > 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.net wiki
> > 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
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@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
-~----------~----~----~----~------~----~------~--~---

Reply via email to