在保存内容Google脚本的同时使用Filename保存文件

时间:2017-03-16 14:42:20

标签: google-apps-script

我正在尝试在Drive start 01中创建并保存文件,但如果我重命名该文件,则会更改文件类型。这是我正在使用的代码

function saveInDriveFolder( url , foldername, j){
  var curfol = DriveApp.getFoldersByName(foldername).next()
  var file = UrlFetchApp.fetch(url , { muteHttpExceptions: true })
  if( file.getResponseCode() == 200 ) { 
  curfol.createFile(file);
  }
}

我试过了

curfol.createFile(j,file);

但这会丢失文件类型,然后我将其更改为

curfol.createFile(j + ".jpg", file);

这不起作用。

我正在尝试从01.jpg

开始保存图像

2 个答案:

答案 0 :(得分:0)

UrlFetchApp.fetch()返回响应对象,而不是原始jpeg,因此您可以使用getResponseCode()检查是否收到了HTTP 200响应。

您需要使用getAs(MimeType.JPEG)getBlob()来获取文件的内容

因此,创建文件的代码应如下所示:

curFol.createFile('01.jpg', file.getAs(MimeType.JPEG));

请参阅:

https://developers.google.com/apps-script/reference/url-fetch/http-response

https://developers.google.com/apps-script/reference/drive/folder#createfilename-content-mimetype

答案 1 :(得分:0)

我解决了这个问题,代码更改如下:

function saveInDriveFolder( url , foldername, j){
  var curfol = DriveApp.getFoldersByName(foldername).next()
  var file = UrlFetchApp.fetch(url , { muteHttpExceptions: true })
  if( file.getResponseCode() == 200 ) { 
    k = j > 9 ? "" + j: "0" + j
  var blob = file.getBlob().setName( k + '.jpg');
  curfol.createFile(blob);

  }
}