Skip to content
Advertisement

Insert a file to a particular folder using google-drive-api

I tried as given below. But the file is going to root directory(My-Drive).

var metadata = {
  'title': fileData.fileName,
  'mimeType': contentType,
  'parents':["0B6NmmF3ovpsbExuOEc1R2JzSFEp"] // It is one of my folder's id.
};

var base64Data = btoa(reader.result);
var multipartRequestBody =
    delimiter +
    'Content-Type: application/jsonrnrn' +
    JSON.stringify(metadata) +
    delimiter +
    'Content-Type: ' + contentType + 'rn' +
    'Content-Transfer-Encoding: base64rn' +
    'rn' +
    base64Data +
    close_delim;

var request = gapi.client.request({
    'path': '/upload/drive/v2/files',
    'method': 'POST',
    'params': {'uploadType': 'multipart'},
    'headers': {
      'Content-Type': 'multipart/mixed; boundary="' + boundary + '"'
    },
    'body': multipartRequestBody});

 request.execute(callback);

Advertisement

Answer

I solved the issue.

The error was in this line:

'parents':["0B6NmmF3ovpsbExuOEc1R2JzSFEp"]

The line should be:

'parents':[{"id":"0B6NmmF3ovpsbExuOEc1R2JzSFEp"}]

Documentation can be found at https://developers.google.com/drive/web/folder

Advertisement