Google Диск скачивает файл с таким же содержанием - PullRequest
1 голос
/ 09 июля 2020

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

Для одного изображения все работает нормально .. Проблема в том, что я выбираю более 1 файла. Иногда, когда выбрано 2 файла и один файл загружается, а другой нет, а иногда с ошибкой 403 .. Документация о проблемах в Google для api v3 отсутствует.

 "error": {
    "errors": [
        {
            "domain": "usageLimits",
            "reason": "dailyLimitExceeded",
            "message": "Daily Limit Exceeded"
        }
    ],
        "code": 403,
            "message": "Daily Limit Exceeded"
}

Код для получения данных:

 function pickerCallback(data) {
    var fileId;
    var gdriveids = [];
    var gdrivebas64 = [];
    var selectedfilenames=[];

    if (data.action == google.picker.Action.PICKED) {
        for (var i = 0; i < data.docs.length; i++) {
            fileId = data.docs[i].id;
            gapi.load('client', function () {
                gapi.client.load('drive', 'v3', function () {
                    var file = gapi.client.drive.files.get({ 'fileId': fileId, fields: '*' });
                    file.execute(function (resp) {
                        console.log(resp);
                        var maxFileSize = 20971520/*20MB(20*1024*1024)*/;
                        filesize = resp.size;
                        displayfilesize = formatBytes(filesize);
                        filesizes.push(displayfilesize);
                        morefiles = maxfiles - imgcount;
                        if (gdriveids.length > morefiles) {
                            $('#filelist').html("You can add only " + morefiles + " more file(s).");
                            $('#myProgress').show();
                        } else {
                            if (filesize < maxFileSize) {
                                $('#myProgress').show();
                                $('.images').html("");

                                console.log("FolderName : " + inputFolderName);
                                console.log("Files : " + selectedfilenames);

                                var accessToken = oauthToken;
                                var xhr = new XMLHttpRequest();
                                xhr.open("GET", "https://www.googleapis.com/drive/v3/files/" + fileId + '?alt=media', true);
                                xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
                                xhr.responseType = 'arraybuffer'
                                xhr.onload = function () {
                                    if (xhr.status == 200) {
                                        var base64 = base64ArrayBuffer(xhr.response);
                                        gdrivebase64.push(base64);

                                        $.ajax({
                                            type: "POST",
                                            url: "test.aspx/GetFile",
                                            data: JSON.stringify({
                                                InputFolderName: inputFolderName, FileNames: selectedfilenames, Base64: gdrivebase64
                                            }),
                                            contentType: "application/json; charset=utf-8",
                                            dataType: "json",
                                            success: function (msg) {
                                                if (msg.d == "True") {
                                                    console.log("Success");
                                                } else {
                                                    console.log("Failed");
                                                }
                                            }
                                        });
                                    } else {
                                        $('#filelist').html('Error! Please try again.');
                                    }
                                }
                                xhr.send();
                            }
                        }
                    })
                });
            });
        };
    }
}
...