2012-06-11 31 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 

    } 

} 

這工作正常,在Firefox和Chrome瀏覽器,但是當用IE9上傳文件似乎不會過去:

req.body match { 

    case Full(file) => 

} 

有什麼我失蹤或需要要做到這一點正常工作?提前任何幫助

謝謝,非常感謝:)

回答

0

首先,req.body會給你一個字節數組,而不是一個文件。 Lift會自動檢測您是否正在上傳文件或任意有效負載。將文件放入內存並不是一個好主意,特別是如果它們可能很大。

看爲req.uploadedFiles,並且req.rawInputStreamOnDiskFileParamHolder.apply - 如果我還記得如何vallums上傳的作品,你必須輸入流手動推入FileParamHolder,從中你可以叫.file,然後有一個直接java.io.File實例工作用。