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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用普通的POST请求将文件发送到apps脚本?相关的知识,希望对你有一定的参考价值。

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

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。我的档案在哪里?

答案

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

以上是关于如何使用普通的POST请求将文件发送到apps脚本?的主要内容,如果未能解决你的问题,请参考以下文章

如何将.gpx文件附加到使用Google Apps脚本发送的邮件中?

发送POST请求,包含文件MultipartFile参数,普通字符串参数,请求头参数

通过Angular App和NodeJS向快递服务器发送GET / POST请求时如何修复404 Not Found

如何使用 RestTemplate 将 POST 请求发送到相对 URL?

如何向 Discord Webhooks C# 发送 POST 请求

从 POST 请求将文件保存到 Web 服务器