如何使用普通的POST请求将文件发送到apps脚本?

时间:2018-03-05 09:31:50

标签: javascript node.js post google-apps-script request

我正在对应用程序脚本执行简单的文件上传程序,但我在将数据上传为文件时遇到了一些麻烦。假设我有这段代码:

function doPost(e) {
  console.log(e)
}

我在node.js

中做了一个简单的POST请求
  let formData = {
    theFile: {
      value: fs.createReadStream('myawersome.file'),
      options: {
        filename: 'myawersome.file',
        contentType: 'some/mimetype'
      }
    }
  }
  let params = {
    url: 'my-script-url',
    followAllRedirects: true,
    formData: formData
  }
  request.post(params)

那么,问题是什么。我在e doPost param中看不到任何文件。那是我的console.log输出

{"queryString":"","parameter":{},"contextPath":"","parameters":{},"contentLength":9483}

我可以看到我在请求中有一些数据,但一切都是空的。 e.parameters.theFilee.theFileundefined。我的档案在哪里?

1 个答案:

答案 0 :(得分:1)

createReadStream的来电只是创建了流,但没有读取文件

阅读文件,试试:

var rs = fs.createReadStream('myawersome.file');


rs.on("data", function (chunk) {

    var content = chunk.toString();


    var formData = {
        theFile: {
            value: content,
            options: {
                filename: 'myawersome.file',
                contentType: 'some/mimetype'
            }
        }
    }

    var params = {
        url: 'my-script-url',
        followAllRedirects: true,
        formData: formData
    }

    request.post(params)

});
rs.resume(); // this launches the read