Ciao raga, come avrete capito dal titolo stò smanettando con google drive.
Il mio obiettivo è quello di permettere agli utenti di caricare file presenti sul server web.
In pratica un utente può decidere se salvarsi su google drive determinati file generati per lui dal mio sito. Chiaramente per fare questo non posso usare un classico input di selezione file .
Mi dareste una mano?
Di seguito riporto il codice delle api di google drice;
codice:
function uploadFile(evt){
gapi.client.load('drive','v2',function(){
var file = evt.target.files[0];
insertFile(file);
});
}
function insertFile(fileData, callback){
const boundary ='-------314159265358979323846';
const delimiter ="\r\n--"+ boundary +"\r\n";
const close_delim ="\r\n--"+ boundary +"--";
var reader =newFileReader();
reader.readAsBinaryString(fileData);
reader.onload =function(e){
var contentType = fileData.type ||'application/octet-stream';
var metadata ={
'title': fileData.name,
'mimeType': contentType
};
var base64Data = btoa(reader.result);
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;
var request = gapi.client.request({
'path':'/upload/drive/v2/files',
'method':'POST',
'params':{'uploadType':'multipart'},
'headers':{'Content-Type':'multipart/mixed; boundary="'+ boundary +'"'},
'body': multipartRequestBody});
if(!callback){
callback =function(file){
console.log(file)
};
}
request.execute(callback);
}
}
In pratica una volta che viene selezionato un file con l'input type='file' parte la funzione uploadFile, io vorrei evitare l'input e partendo dal path di un file far partire l'upload.
Mi aiutate?
Grazie in anticipo !