![](/img/trans.png)
[英]Uploading file to specific folder using google drive api with PHP
[英]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.