Cloudinary 文件上传错误

Cloudinary File Upload Error

我正在写一个关于使用 Express.js 的 REST API。 API需要从客户端接受一个视频文件上传到cloudinary。当我使用 api 到 return 将文件返回给客户端(作为测试)时,一切正常。然后,当我尝试将相同的文件上传到 cloudinary 时,出现错误。错误说:

"file.match is not a function"

我不确定 file.match 到底是什么或者为什么它给我带来了问题。如果其他人遇到过这个问题,您是如何解决的? 以下是给我带来问题的代码:

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

var cloudinary = require('cloudinary');

cloudinary.config({
  cloud_name: 'name',
  api_key: 'key',
  api_secret: 'secret'
});

module.exports.cloudinary = cloudinary;

您是否尝试将 resource_type 指定为 video -

cloudinary.uploader.upload(req.files, 
    function(result) {console.log(result); },
    { resource_type: "video" });

如果您要上传图片和视频,您可以使用 auto 作为 resource_type

我能够解决问题。这对 Cloudinary 来说不是问题。关键是只发送文件的位置。

正在工作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;