簡體   English   中英

使用PHP代碼將.xls文件從網絡服務器上傳到Google雲端硬盤

[英]Uploading .xls file from webserver to Google Drive using PHP code

我有一個將數據庫表提取到excel文件中的代碼,現在我希望使用google-drive-api或其他方式將此文件上傳到google驅動器。 我面臨的唯一問題是如何完成上傳過程,因為我希望此文件在一秒鍾內至少同步4次。 請求從數據庫導出的代碼在這里。 有人可以幫我將這個文件(testfile.xls)上傳到Google-Drive嗎?

<?php
// All Copyrights owned 2015. Ask Owner before Copying Code.

header("Content-Type: application/xls");    
header("Content-Disposition: attachment; filename=testfile.xls");  
header("Pragma: no-cache"); 
header("Expires: 0");

        try { 

            $db = new PDO('mysql:host=localhost;dbname=test', "root", "");

            $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 
            $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

            $db = $db;

        } catch (PDOException $e) {             
            die($e);
        }

        try {

            $query = $db->prepare("SELECT * FROM `test` ORDER BY `event_id` ASC;");
            $query->execute();


            while($row = $query->fetch(PDO::FETCH_ASSOC)) 
                $ret[] = $row;

            foreach ($ret as $key => &$entry) 
                $events[$entry['event_id']][$key] = $entry;

        } catch (PDOException $e) {             
            die($e);
        }

        $event = array('',..........,'Band');

        $tot_num=0;
        foreach($events as $ev)
            {   $event_num=0;
                echo "Time"."\n";
                    foreach($ev as $e) {
                        //Multiple echo Statements
                    }
            echo "\n";
            echo "Event Total: "."\t".$event_num."\n"."\n";
        }

    echo $tot_num;



?>

這可以通過Google的“ PHP API客戶端庫(測試版)”來實現。 他們有一個上傳單個文件的具體示例。 https://developers.google.com/api-client-library/php/guide/media_upload上查看“簡單上傳”部分

順便說一句,我認為我找到了一個選項,我使用google app腳本以blob的形式從服務器獲取數據並將其直接粘貼到驅動器中,此app腳本可以搜索現有文件,可以刪除舊版本,然后推送新文件文件。

function downloadFile(fileURL,folder) {

  var fileName = "";
  var fileSize = 0;

     var fileURL="enter url on server where you wish to take data from";
     //Removing files with name "export"
     var files = DriveApp.searchFiles(
     'title contains "export"');
     while (files.hasNext()) 
     {
        var file = files.next();
       DriveApp.removeFile(file);
     }
    //Search Folder by name "Backups"

    var folders = DriveApp.searchFolders('title contains "Backups"');
    while (folders.hasNext()) {
     var folder = folders.next();
     var id= folder.getId();
     }

    //URL Fetch and Response log
    var response = UrlFetchApp.fetch(fileURL, {muteHttpExceptions: true});
    var rc = response.getResponseCode();
    var fol_id = DriveApp.getRootFolder();
    //Creating File
    if (rc == 200) {
    var fileBlob = response.getBlob();
    var folder = DriveApp.getFolderById(id);
    if (folder != null) {
      var files= fol_id.createFile(fileBlob);
      var file = folder.createFile(fileBlob);
      fileName = "Registrations";
      fileSize = file.getSize();
    }
    }

    var fileInfo = { "rc":rc, "fileName":fileName, "fileSize":fileSize };
    return fileInfo;
    }

注意:請確保在腳本中激活Drive API。

暫無
暫無

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

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