Cloudinary文件上传错误
问题描述:
我在使用Express.js编写REST API。 API需要接受来自客户端的视频文件并将其上传到云端。当我使用api将文件返回给客户端(作为测试)时,一切正常。当我然后尝试上传相同的文件到cloudinary我得到一个错误。错误说:Cloudinary文件上传错误
"file.match is not a function"
我不知道什么file.match即使是为什么它给了我一个问题。如果其他人有这个问题,你是如何解决它的? 下面是给我的问题代码:
var cloudinary = require('cloudinary');
cloudinary.config({
cloud_name: 'name',
api_key: 'key',
api_secret: 'secret'
});
module.exports.cloudinary = cloudinary;
答
我能解决这个问题。这对Cloudinary来说并不是问题。关键是只发送文件的位置。
WORKING routes.js
var express = require('express');
var cloudinary = require('../cloudinary.js').cloudinary;
var router = express.Router();
router.post('/upload', function(req, res, next) {
var fileGettingUploaded = req.files.fileToUpload.path;
cloudinary.uploader.upload(fileGettingUploaded, function(result) {
console.log(result);
});
});
module.exports = router;
答
你尝试指定
app.js
var express = require('express');
var formidable = require('express-formidable');
var app = express();
app.use(formidable());
var routes = require('./routes');
app.use('/routes', routes);
var port = process.env.PORT || 3000;
app.listen(port, function() {
console.log('Express server is listening on port ' + port);
});
routes.js
var express = require('express');
var cloudinary = require('../cloudinary.js').cloudinary;
var router = express.Router();
router.post('/upload', function(req, res, next) {
cloudinary.uploader.upload(req.files, function(result) {
console.log(result);
});
});
module.exports = router;
cloudinary.js resource_type
作为video
-
cloudinary.uploader.upload(req.files,
function(result) {console.log(result); },
{ resource_type: "video" });
如果您上传的图片和视频可以使用auto
为resource_type
。
因为cloudinary.js是你自己的代码,更喜欢你表明代码以及 – Simon
@Simon伊夫添加上述 – TheNewGuy