Google云端硬盘下载具有相同内容的文件

时间:2020-07-09 06:20:37

标签: jquery google-api google-drive-api google-picker google-api-js-client

我正在尝试从Google驱动器中选择两个图像,并尝试如图所示在base64中下载内容,并将其发送到服务器端以将文件下载到我的服务器文件夹中,但是下载后我可以这两个文件但内容相同。我不确定我在哪里做错了。有人可以解决我这个问题吗?

对于单个图像,它可以正常工作。问题是当我选择多个文件时。 有时选择了2个文件,一个文件被下载,另一些则没有,有时出现403错误。.apiv3在Google上没有问题文档。

 "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();
                            }
                        }
                    })
                });
            });
        };
    }
}

0 个答案:

没有答案
相关问题