0

试图从我目前正在构建的 lil 应用程序中找到存储一些文件的解决方案,我尝试使用 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 网站上检查控制台时,我可以看到文件已上传。

这是我从以下位置获得文件选择器节点模块的 github 存储库: https ://github.com/treygriffith/filepicker/blob/master/README.md

感谢你们!

4

1 回答 1

1

自该模块上次更新(2012 年)以来,filepicker.io 很可能更改了他们的 API。是他们当前 REST API 的文档,应该很容易手动使用诸如请求上传文件的模块。例子:

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);
});
于 2014-10-03T14:46:35.687 回答