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; 
+0

因为cloudinary.js是你自己的代码,更喜欢你表明代码以及 – Simon

+0

@Simon伊夫添加上述 – TheNewGuy

我能解决这个问题。这对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" }); 

如果您上传的图片和视频可以使用autoresource_type

+0

同样的错误仍然出现的代码,“file.match是不是功能“ – TheNewGuy

+0

您能否请您打开[支持票](https://support.cloudinary.com/hc/en-us/requests/new)并分享视频文件供我们进一步调查? 请参考这篇文章.. –

+0

我照你问的 – TheNewGuy