更新日:2020/4/30

multipart/form-dataのファイルをGASから送信する

GASでファイルを送るには「multipart/form-data」

ファイルを送るには「multipart/form-data」を使うらしい。 とても苦戦したのでのせておきます。

ソースコード

function uploadAttachment() {
    var boundary = 'boundary';
    var file = DriveApp //DriveApp obj
    var data = file.getBlob().getDataAsString();

    // PostDataフォーマット作成
    var requestBody = Utilities.newBlob("--" + boundary + "\r\n"
        + "Content-Disposition: form-data; name=\"file\"; filename=" + file.getName() + "\r\n"
        + "Content-Type: application/octet-stream \r\n\r\n"
        + "--" + boundary + "\r\n"
        + data + "\r\n"
        + "--" + boundary + "--\r\n"
    );
    var request = UrlFetchApp.fetch(url, {
        contentType: 'multipart/form-data; boundary=' + boundary,
        method: 'post',
        payload: requestBody,
        muteHttpExceptions: true
    });
    var responseJson = JSON.parse(request.getContentText());

    return responseJson;
}

© 2019 Sakihara Shinnosuke.