2012-06-11 1 views
0

을 업로드 수락하지 :에 업로드 요청을 전송스칼라 리프트 - AJAX 업 로더 (valums) IE9 파일이 나는 다음과 같은 한

new qq.FileUploader({ 

    element: $('#' + domid + ' #upload')[0], 
    action: '/api/panel/upload_file', 
    debug: true, 
    allowedExtensions: [ 

     'jpg', 
     'jpeg', 
     'gif', 
     'png', 
     'bmp', 
     'pdf' 

    ], 
    params: { 

     room : 'a_room', 
     module : 'a_module' 

    }, 
    onSubmit: function(id, fileName) { 

     this.params.name = fileName; 

    }, 
    onProgress: function(id, fileName, loaded, total) { }, 
    onComplete : function(id, fileName, data) { 

     /* FINISH */ 

    } 

}); 

:

case "api" :: "panel" :: "upload_file" :: Nil Post req => { 

    var response = true 

    req.body match { 

     case Full(file) => 

      /* DO SOMETHING */ 

     case _ => response = false 

    } 

} 

이 모두 파이어 폭스와 크롬에서 잘 작동 하지만 IE9로 업로드 할 때 파일이 지나치지 않는 것 같습니다 :

req.body match { 

    case Full(file) => 

} 

내가 누락되었거나 필요한 것이 있습니까? 제대로 작동하려면 어떻게해야합니까? 사전에 어떤 도움

덕분에, 많은 감사 :)

답변

0

는 첫째, req.body 당신에게 바이트의 배열이 아닌 파일을 제공 할 것입니다. Lift는 파일이나 임의의 페이로드를 업로드하는지 자동으로 감지합니다. 특히 파일 크기가 클 경우 파일을 메모리에 저장하는 것은 좋지 않습니다.

req.uploadedFiles에, 그리고 req.rawInputStreamOnDiskFileParamHolder.apply와 - 내가 업 로더 작품을 vallums 방법을 기억한다면, 당신은 단지 .file 전화를 한 후 작업을 직접 java.io.File 인스턴스를 가질 수있는 수동 FileParamHolder에 입력 스트림을 밀어해야 와.

관련 문제