2014-12-15 3 views
2

Я написал следующий код для загрузки файла с диска Google с помощью JavaScript, но я не могу открыть файл после завершения загрузки. Его дающая ошибка, как формат файла, не соответствует моему коду, как показано ниже. ,Как загрузить файл Google Диска на сервер

function createPicker() { 
    var picker = new FilePicker({ 
     apiKey: 'myapikey', 
     clientId: 'myclientID', 
     buttonEl: document.getElementById('ancggdgdgdd'), 
     onSelect: function (file) { 
      downloadFile(file); 
     } 
    }); 
} 

и прочитать содержимое файла кода, как:

function downloadFile(doc) { 
    var myToken = gapi.auth.getToken(); 
    var contentType = "text/plain;charset=utf-8"; 
    var rawFile = new XMLHttpRequest(); 
    rawFile.open("GET", doc.downloadUrl, false); 
    rawFile.setRequestHeader('Content-type', contentType) 

    rawFile.setRequestHeader('Authorization', 'Bearer ' + myToken.access_token); 
    rawFile.onreadystatechange = function() { 
     if (rawFile.readyState === 4) { 
      if (rawFile.status === 200 || rawFile.status == 0) { 

       sendFile(rawFile.responseText);//here I am sending httpcontext 
      } 
     } 
    } 
    //rawFile.responseType = "arraybuffer"; 
    rawFile.send(null); 
} 

ответ

0

Попробуйте эту функцию для загрузки файлов:

/** 
* Download a file's content. 
* 
* @param {File} file Drive File instance. 
* @param {Function} callback Function to call when the request is complete. 
*/ 
function downloadFile(file, callback) { 
    if (file.downloadUrl) { 
    var accessToken = gapi.auth.getToken().access_token; 
    var xhr = new XMLHttpRequest(); 
    xhr.open('GET', file.downloadUrl); 
    xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken); 
    xhr.onload = function() { 
     callback(xhr.responseText); 
    }; 
    xhr.onerror = function() { 
     callback(null); 
    }; 
    xhr.send(); 
    } else { 
    callback(null); 
    } 
} 

Дополнительную информацию вы найдете по следующей ссылке: https://developers.google.com/drive/web/manage-downloads

Смежные вопросы