无法使用node.js获取存储在filepicker上的文件的URL

时间:2014-10-03 13:58:52

标签: node.js filepicker

试图找到一个解决方案,用于存储来自lil' app我目前正在构建,我尝试使用filepicker节点模块并尝试了我可以创建的最简单的示例:

app.get('/test', function(req, res) {
  fs.readFile('myFile.txt', function (err, buf){
      filepicker.getUrlFromBuffer(buf, {persist: true}, function (err, url) {
          console.log("myfile.txt is now stored at " + url);
      });
      return res.send('something');
  });

我收到此错误消息:" TypeError:无法读取属性' url'未定义"。 但是,当我检查filepicker.io网站上的控制台时,我可以看到该文件已被上传。

这是我从以下网站获取filepicker节点模块的github repo: https://github.com/treygriffith/filepicker/blob/master/README.md

谢谢你们!

1 个答案:

答案 0 :(得分:1)

自该模块上次更新(2012)以来,filepicker.io很可能更改了API。 Here是其当前REST API的文档,应该很容易通过request之类的模块手动使用来上传文件。例如:

var request = require('request');
var FILEPICKER_API_KEY = 'foobarbaz';

var formData = {
      fileUpload: fs.createReadStream(__dirname + '/unicycle.jpg')
    },
    cfg = {
      url: 'https://www.filepicker.io/api/store/S3?key=' + FILEPICKER_API_KEY,
      formData: formData
    };
request.post(cfg, function(err, res, body) {
  if (err)
    return console.error('upload failed:', err);
  var response;
  try {
    response = JSON.parse(body);
  } catch (ex) {
    console.log(ex);
  }
  if (response)
    console.dir(response);
});