Published on

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
}