在Play中访问自定义PartHandler内的会话信息!框架2.0

时间:2012-08-22 18:34:56

标签: scala playframework-2.0

为了实现流式上传,我编写了一个自定义PartHandler(Thread here)。

我现在需要访问存储在游戏中的值! PartHandler中的会话。 我怎样才能做到这一点 ?

代码示例:

 def uploadFile() = 

    Action( parse.multipartFormData(myPartHandler) ) 
      {  request => 
           request.session.get("myValue") // <-- Recovering value is fine here
           Ok("Done") }

    def myPartHandler: BodyParsers.parse.Multipart.PartHandler[MultipartFormData.FilePart[Result]] = {
      parse.Multipart.handleFilePart {

        case parse.Multipart.FileInfo(partName, filename, contentType) =>

         // ** Need to access a value in session here **
         //request.session.get("myValue")...

        // Handle part ...

谢谢!

1 个答案:

答案 0 :(得分:0)

other users of the play! framework google group的帮助下,以下是如何在自定义partHandler中访问请求。

//Create a body parser
val myBodyParser = BodyParser { request => 
    parse.multipartFormData(myPartHandler(request)).apply(request)
}

 def uploadFile() = Action(myBodyParser) 
      {request =>Ok("Done")}

 def myPartHandler(request: RequestHeader) : BodyParsers.parse.Multipart.PartHandler[MultipartFormData.FilePart[Result]] = {
    parse.Multipart.handleFilePart {
      case parse.Multipart.FileInfo(partName, filename, contentType) =>         
        println(request.session.get("myValueKey"));