使用PHP代码将.xls文件从网络服务器上传到Google云端硬盘

时间:2015-09-24 19:46:49

标签: php google-drive-api google-api-php-client

我有一个代码将数据库表提取到excel文件中,现在我希望使用google-drive-api或其他东西将此文件上传到谷歌驱动器。我面临的唯一问题是如何完成上传过程,因为我希望这个文件在一秒钟内至少同步4次。 请求从数据库导出的代码在这里。有人可以帮我上传这个文件(testfile.xls)给Google-Drive吗?

Dim pt_appts(-1) As pt_appt 

2 个答案:

答案 0 :(得分:0)

这可以通过Google的“用于PHP的API客户端库(Beta)”来实现。他们有一个上传单个文件的具体示例。查看https://developers.google.com/api-client-library/php/guide/media_upload

上的“简单上传”部分

答案 1 :(得分:0)

顺便说一下,我认为我找到了一个选项, 我使用谷歌应用程序脚本从服务器获取数据作为blob并将其直接粘贴到我的驱动器中,此应用程序脚本可以搜索现有文件,可以删除旧版本,然后推入新文件。

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。