Scala Lift - AJAX上传器(valums)不接受IE9文件上传

时间:2012-06-11 08:28:12

标签: ajax scala file-upload upload lift

我有以下内容:

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) =>

}

我是否缺少或需要做些什么来使其正常工作?

提前感谢您的帮助,非常感谢:)

1 个答案:

答案 0 :(得分:0)

首先,req.body将为您提供一个字节数组,而不是文件。如果您正在上传文件或任意有效负载,Lift将自动检测。将文件放入内存并不是一个好主意,特别是如果它们可能很大。

查看req.uploadedFilesreq.rawInputStream OnDiskFileParamHolder.apply - 如果我回想起vallums上传器如何工作,您必须手动将输入流推送到FileParamHolder,从中java.io.File您可以调用.file然后使用直接{{1}}实例。