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

问题描述 投票:0回答:1

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

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)

所以有什么问题。我在edoPost param中看不到任何文件。那是我的console.log输出

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

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

javascript node.js post google-apps-script request
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.