簡體   English   中英

如何使用php將文件從Google驅動器復制到另一台服務器

[英]How to copy file from google drive to another server using php

我想使用php將文件從Google驅動器復制到另一台服務器。

我曾經用過谷歌驅動器選擇器,當用戶點擊我用來獲取下載網址的任何文件時,我都認為可以通過復制功能來完成,但是沒有用。

任何解決方案請。

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'); 

從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"));
    }
}

也許這會有所幫助嗎?

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;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM