Успешная загрузка в Google Drive, но пустой файл при открытии - PullRequest
0 голосов
/ 16 октября 2018

После преобразования URL-адреса изображения в строку base64 я попытался загрузить это изображение base64 в Goolge Drive, все работает нормально: код ответа 200 и Goole Drive отображают этот файл в App / Web.

Но когда я открываюэто изображение, как Google меняет что-то в строке base64, поэтому оно не может читать.

После загрузки и преобразования изображения из GD в строку base64 я вижу, что моя исходная строка base64 была изменена.

Перед загрузкой: https://anotepad.com/notes/nt6fct

Файл с Google Диска: https://anotepad.com/notes/ayg57q

Код загрузки:

testUploadFile(fileInfo, base64Data){
    const boundary = '-------314159265358979323846';
    const delimiter = "\r\n--" + boundary + "\r\n";
    const close_delim = "\r\n--" + boundary + "--";
    var contentType = fileInfo.type || 'application/octet-stream';
    var metadata = {
        'name': fileInfo.title,
        'mimeType': contentType
    };

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

    gapi.client.request({
        'path': '/upload/drive/v3/files',
        'method': 'POST',
        'params': {
            'uploadType': 'multipart'
        },
        'headers': {
            'Content-Type': 'multipart/related; boundary="' + boundary + '"'
        },
        'body': multipartRequestBody
    }).then(function(response){
        console.log(response);
    });
}

Что-то не так @@ Не могли бы выисправь это?Заранее спасибо!

1 Ответ

0 голосов
/ 16 октября 2018

Этот простой пример может помочь вам найти проблему с вашим кодом.

function createFile(){
const boundary = '-------314159265358979323846';
const delimiter = "\r\n--" + boundary + "\r\n";
const close_delim = "\r\n--" + boundary + "--";

var fileContent = 'It works :)';

var metadata = {
    'name': 'myFile',
    'mimeType': 'text/plain\r\n\r\n'
};

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

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