Я пытаюсь выбрать два изображения с моего диска 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();
}
}
})
});
});
};
}
}