Загрузите URL формы и загрузите на Google Диск в формате javascript - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь загрузить файл с URL-адреса после его загрузки, но он не работает должным образом.Я попытался выполнить поиск в Google и нашел какой-то способ сделать это, например, DriveApp (я не могу найти способ импортировать класс DriveApp, я новичок в javascript).

Итак, есть ли другой способсделай это?Я успешно загрузил файл на Google Drive, но Google Drive не может прочитать его содержимое.Я думаю, что я сделал что-то не так после загрузки файла, не могли бы вы, ребята, помочь мне исправить это, пожалуйста.

Заранее спасибо!

Загрузка с URL:

var _this_ = this;
var xhr = new XMLHttpRequest();
xhr.open('GET', this.link, true);
xhr.responseType='blob';  
xhr.onload = function(e) {
  if (xhr.status == 200)
  {
    _this_.uploadToGoogleDrive(xhr.response);
  }
};
xhr.send();

И загрузить на Google Drive:

uploadFile(title,data) {
    const boundary = '-------314159265358979323846';
    const delimiter = "\r\n--" + boundary + "\r\n";
    const close_delim = "\r\n--" + boundary + "--";

    let fileData = new Blob([data], {
        'type': this.media.getMimeType(title)
    });

    //const contentType = 'application/json';
    const contentType = fileData.type || 'application/octet-stream';

    var metadata = {
        'name': title,
        'mimeType': contentType
    };

    var multipartRequestBody =
        delimiter +
        'Content-Type: application/json\r\n\r\n' +
        JSON.stringify(metadata) +
        delimiter +
        'Content-Type: ' + contentType + '\r\n\r\n' +
        fileData +
        close_delim;

    var request = gapi.client.request({
        'path': '/upload/drive/v3/files',
        'method': 'POST',
        'params': {'uploadType': 'multipart'},
        'headers': {
        'Content-Type': 'multipart/related; boundary="' + boundary + '"'
        },
        'body': multipartRequestBody
    });
    request.execute();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...