- Вы хотите загрузить файл в определенную папку с помощью Drive API.
- Когда ваш скрипт в вашем вопросе запущен, создается новая папка.
- А именно, вы уже можете использовать Drive API.
Если мое понимание верно, как насчет этого примера сценария?К сожалению, в моей среде файлы не могут быть загружены с помощью gapi.client.drive.files.create()
, пока можно создать новый файл и новую папку.Я думал, что это может быть спецификацией.Поэтому я использовал следующий сценарий в качестве обходного пути.Я думаю, что есть несколько решений для вашей ситуации.Поэтому, пожалуйста, подумайте об этом как об одном из них.
Пример сценария:
let file = document.getElementsByName('upFile')[0].files[0]; // file
var metadata = {
name: file.name,
mimeType: file.type,
parents: ['### folderId ###'], // Please set folderId here.
};
var form = new FormData();
form.append('metadata', new Blob([JSON.stringify(metadata)], {type: 'application/json'}));
form.append('file', file);
fetch('https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart', {
method: 'POST',
headers: new Headers({'Authorization': 'Bearer ' + gapi.auth.getToken().access_token}),
body: form
}).then((res) => {
return res.json();
}).then(function(val) {
console.log(val);
});
Примечание:
- В этом примере сценария предполагается, что файлвводится
<input type="file" name='upFile'>
. - . В этом примере сценария можно загрузить файл размером менее 5 МБ.Если вы хотите загрузить большой файл размером более 5 МБ, используйте возобновляемую загрузку.На ваш вопрос, я подумал, что файл изображения может быть менее 5 МБ.Поэтому я предложил этот скрипт.
Ссылки: