файлы, загруженные с устройства google drive usin picker, повреждены

Я использую google picker в своем веб-приложении, чтобы позволить пользователю просматривать и выбирать файлы со своего диска Google. Когда он делает выбор, сборщик возвращает различные данные о выбранных файлах, включая идентификатор файла и URL. Моя цель – загрузить выбранные файлы на сервер. Если я передаю URL-адрес моему внутреннему скрипту, он загрузит файл, но они повреждены, вот мой код:

функция обратного вызова:

function onPickerAction(data) { if (data.action === google.picker.Action.PICKED) { var id = data.docs[0].id; var request = new XMLHttpRequest(); request.open('GET', 'https://www.googleapis.com/drive/v2/files/' + id); request.setRequestHeader('Authorization', 'Bearer ' + gapi.auth.getToken().access_token); request.addEventListener('load', function() { var item = JSON.parse(request.responseText); console.log(item); downloadFile(item); }); request.send(); } } 

это функция, которая отправляет данные в файл php:

 function downloadFile(item) { var request = new XMLHttpRequest(); var mimeType = item['mimeType']; if (typeof item.exportLinks != 'undefined') { if (mimeType == 'application/vnd.google-apps.spreadsheet') { mimeType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; } url = item['exportLinks'][mimeType]; link = url; } else { lien = item['downloadUrl'].split("&"); link = lien[0] + '&' + lien[1]; url = item['downloadUrl']; } title = item['title']; type = mimeType; filesize = item['fileSize']; fileext = item['fileExtension']; id = item['id']; var datatable = [url, title, type, filesize, fileext,id]; document.getElementById("myddlink").href=link; request.open("POST", "downloadfile.php?" + datatable, true); request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); request.send("datatable=" + datatable); } 

и это моя php-функция для загрузки файлов:


         if (isset ($ _ POST ['exportFormat'])) {
         $ pieces = explode (",", $ _POST ['exportFormat']);
         $ url = $ _POST ['datatable'].  '& ExportFormat = XLSX';
         $ title = $ pieces [1];
         $ type = $ pieces [2];
         $ fileext = $ pieces [0];
         $ fileId = $ штук [5];
     } else {
         $ url = $ _POST ['datatable'].  '& Е = скачать';
         $ pieces = explode (",", $ _POST ['gd']);
         $ onlytitle = explode (".", $ pieces [1]);
         $ title = $ onlytitle [0];
         $ type = $ pieces [2];
         $ filesize = $ pieces [3];
         $ fileext = $ pieces [4];
         $ fileId = $ штук [5];
     }
     $ fullPath = $ upload_path.  '/ Myfiles1 /'.  $ title.  ''  ,  $ Fileext;
     header («Pragma: public»);
     заголовок («Истекает: 0»);
     header («Cache-Control: обязательный-revalidate, post-check = 0, pre-check = 0»);
     header («Cache-Control: public»);
     header («Content-Description: File Transfer»);
     header ("Content-type:". $ type. "");
     header ("Content-Disposition: attachment; filename = \" ". $ title. '.'. $ fileext." \ "");
     header («Content-Transfer-Encoding: binary»);
     header («Content-Length:». $ filesize);
     // папка для сохранения загруженных файлов.  должен заканчиваться косой чертой
     $ destination_folder = $ upload_path.  '/ Myfiles1 /';
     $ newfname = $ destination_folder.  basename ($ title. '.'. $ fileext);
     $ file = fopen ($ url, "rb");
     if ($ file) {
         $ newf = fopen ($ newfname, "wb");
         if ($ newf)
             while (! feof ($ file)) {
                 fwrite ($ newf, fread ($ file, 1024 * 8), 1024 * 8);
             }
     }
     if ($ file) {
         fclose ($ файла);
     }
     if ($ newf) {
         fclose ($ Newf);
     }
     ob_end_flush ();

любые идеи, пожалуйста, о том, как я могу загружать файлы без их развращения?