首页 > 开发 > NodeJS > 正文

云代码nodejs中,请问如何将一个图片url存入AV.File?

2017-09-08 17:34:22  来源:网友分享

代码如下

var url = 'http://img.t.sinajs.cn/t5/style/images/global_nav/WB_logo.png?id=1382608648268';AV.Cloud.httpRequest({    url: url,    text: false,    success: function (httpResponse) {        var filename = 'image.png';        var file = new AV.File(filename, httpResponse.buffer);//      var file = new AV.File(filename,[ 0xBE, 0xEF, 0xCA, 0xFE ]);        file.save().then(function () {            // The file has been saved to AV.            res.send('OK');        }, function (error) {            res.send(500, error);        });    },    error: function (httpResponse) {        console.error('Request failed with response code ' + httpResponse.status);        res.send(httpResponse.status);    }});return;

如果用上面的代码,我会收到这样的错误:

Thu, 16 Jan 2014 09:27:02 GMT uncaughtException: Cannot call method 'then' of undefinedTypeError: Cannot call method 'then' of undefined    at Object.AV.File.save (/usr/local/lib/node_modules/avoscloud-code/node_modules/avoscloud-sdk/lib/av.js:4147:43)    at AV.Cloud.httpRequest.success (/Users/ph/Documents/iphone/aphree_server/cloud/admin.js:43:12)    at /usr/local/lib/node_modules/avoscloud-code/node_modules/avoscloud-sdk/lib/av.js:3709:27    at wrappedResolvedCallback (/usr/local/lib/node_modules/avoscloud-code/node_modules/avoscloud-sdk/lib/av.js:3635:38)    at /usr/local/lib/node_modules/avoscloud-code/node_modules/avoscloud-sdk/lib/av.js:3586:26    at Array.forEach (native)    at Object._.each._.forEach [as _arrayEach] (/usr/local/lib/node_modules/avoscloud-code/node_modules/avoscloud-sdk/lib/av.js:95:11)    at _.extend.resolve (/usr/local/lib/node_modules/avoscloud-code/node_modules/avoscloud-sdk/lib/av.js:3585:10)    at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/avoscloud-code/lib/cloud_code.js:298:20)    at IncomingMessage.EventEmitter.emit (events.js:117:20)

如果用注释中的代码,则不会遇到任何问题。

请问是我哪里搞错了吗?buffer不能直接用在AVFile的参数中?

解决方案

现在可以直接用Buffer了。