2

有没有人有使用 ringojs 将文件上传到服务器的示例?

4

1 回答 1

4

演示应用中有一个简单的上传示例,但它将上传存储在内存中,这对大多数应用来说不是一个好主意。要将上传保存到临时文件,您当前必须执行以下操作(这是上传演示操作的修改版本):

var fu = require("ringo/webapp/fileupload");

function upload(req) {
    if (fu.isFileUpload(req.contentType)) {
        var params = {};
        fu.parseFileUpload(req, params, req.charset, fu.TempFileFactory);
        return {
            status: 200,
            headers: {"Content-Type": "text/plain"},
            body: [params.file.name, " saved to ", params.file.tempfile]
        };
    }
    return Response.skin(module.resolve('skins/upload.txt'), {
        title: "File Upload"
    });
}

不幸的是,我刚刚修复了将上传保存到临时文件的错误,因此您必须modules/ringo/webapp/fileupload.js手动使用当前的 git 快照或补丁文件:

http://github.com/ringo/ringojs/commit/1793a815a9ca3ffde4aa5a07c656456969b504f9

我们还需要一些高级方法来为下一个版本执行此操作(例如设置req.uploadTempDir属性)。我会为此打开一个问题。

于 2010-10-05T08:58:36.597 回答