0

我有以下内容:

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

}

有什么我遗漏或需要做的事情才能使其正常工作吗?

在此先感谢您的帮助,非常感谢:)

4

1 回答 1

0

首先, req.body 会给你一个字节数组,而不是一个文件。Lift 将自动检测您是否正在上传文件或任意有效负载。将文件放入内存不是一个好主意,尤其是在它们可能很大的情况下。

看看req.uploadedFiles,如果我记得 vallums 上传器是如何工作的,你必须手动将输入流推送到req.rawInputStream.file中,你可以从中调用 .file 然后有一个直接实例可以使用。OnDiskFileParamHolder.applyFileParamHolderjava.io.File

于 2012-06-12T07:52:06.200 回答