2015-09-11 4 views
0

Я хочу скопировать файл с Google на другой сервер, используя php.Как скопировать файл с диска Google на другой сервер, используя php

Я использовал google drive picker, и когда пользователь нажимает на любой файл, который я использовал для получения URL-адреса загрузки, я думал, что это можно сделать с помощью функции копирования, но это не сработало.

Любое решение Пожалуйста.

function getDownloadurl(fileId) { 
      var request = gapi.client.request({ 
        'path': '/drive/v2/files/' + fileId, 
        'params': { 'maxResults': '1000' }, 
        callback: function (responsejs, responsetxt) { 
        var fileDownloadUrl = responsejs.downloadUrl; 
       $.ajax({ 
       type: "POST", 
       url: "ajax-files/copy_drive_file.php", 
       data: { gd_url:fileDownloadUrl }, 
       async:false, 
       success: function(data) 
       { 

       } 
}); 

copy_drive_file.php

$sourcePath=$_POST['gd_url']; 
copy($sourcePath, 'sss/file.jpg'); 

ответ

0

Может быть, это поможет?

function copyFile($service, $originFileId, $copyTitle) { 
     $copiedFile = new Google_Service_Drive_DriveFile(); 
     $copiedFile->setTitle($copyTitle); 
     try { 
     return $service->files->copy($originFileId, $copiedFile); 
     } catch (Exception $e) { 
     print "An error occurred: " . $e->getMessage(); 
     } 
     return NULL; 
    } 
+1

Где установить новый путь для сохранения файла на другом сервере ... – user3653474

+0

Мне нужно сохранить скопированный файл локально или на другом сервере. – user3653474

2

Вам необходимо авторизоваться и проверить подлинность ваших запросов при выборке из PHP

YourJsFile

function getDownloadurl(fileId) { 
var accessToken = gapi.auth.getToken().access_token; 
var request = gapi.client.request({ 
      'path': '/drive/v2/files/' + fileId, 
      'params': { 
       'maxResults': '1000' 
      }, 
      callback: function(responsejs, responsetxt) { 
       var fileDownloadUrl = responsejs.downloadUrl; 
       $.ajax({ 
        type: "POST", 
        url: "ajax-files/copy_drive_file.php", 
        data: { 
         gd_url: fileDownloadUrl, 
         accessToken: accessToken 
        }, 
        async: false, 
        success: function(data) { 
         console.log(data); 
        } 
       }); 
      } 
     }); 
} 

copy_drive_file.php

if (isset($_POST['gd_url']) && isset($_POST['accessToken'])) { 
    $url = $_POST['gd_url']; 
    $accessToken = $_POST['accessToken']; 
    $opts = array(
      'http'=>array(
      'method'=>"GET", 
      'header' => "Authorization: Bearer " . $accessToken     
      ) 
    ); 
    $context = stream_context_create($opts); 
    $content = file_get_contents($url, false, $context); 
    if (!empty($content)){ 
     file_put_contents("path/filename.file_extension",$content); 
     echo json_encode(array('file_name' => "filename.file_extension")); 
    } 
}