如何使用 PHP 将文件从服务器复制到 Dropbox? [复制]

2023-11-21

我想我可能找到了一个 PHP 程序,可以将特定文件夹中的文件上传到我的 Dropbox 帐户。完整的解决方案可以找到here.

该代码似乎有效,因为正在上传类似的文件和文件夹。但是,我不希望预先压缩服务器上的文件:我想复制其中包含文件和文件夹的所有文件。

请问代码该如何修改呢?我想要的只是将一个名为 uploads 的特定目录从我的服务器复制到 dropbox。修改代码后我设法得到这个代码:

    <?php

    // Set the timezone so filenames are correct
    date_default_timezone_set('Europe/London');

    // Dropbox username/password
    $dropbox_email='[email protected]';
    $dropbox_pass='password';


    // Filenames for backup files
    $backup_files = "files_" . date("Y.m.d-h.i.s_l") . '.zip';


    // File to backup
    $siteroot = "/site/home/public_html/website/parent/child/uploads/";


    // Backup all files in public_html apart from the gz
    system("zip -r $backup_files $siteroot");


    include("DropboxUploader.php");

    $uploader = new DropboxUploader($dropbox_email, $dropbox_pass);
    $uploader->upload($backup_files,'Backup/Files/');

    system("rm $backup_files");

    ?>

实际解决方案特别感谢 Alireza Noori、halfer 和其他所有人。

<?php

// Set the timezone so filenames are correct
date_default_timezone_set('Europe/London');

// Backup all files in public_html apart from the gz
$siteroot = "/path/to/backup";

$dropbox_email='dropbox@email';  //Dropbox username
$dropbox_pass='pass';   // Dropbox password

include("DropboxUploader.php");

$uploader = new DropboxUploader($dropbox_email, $dropbox_pass);

function FolderToDropbox($dir, $dropbox_link){    
    $dropbox_folder = 'FolderInDropboxRoot/';
    $files = scandir($dir);
    foreach($files as $item){
        if($item != '.' && $item != '..'){
            if(is_dir($dir.'/'.$item)) FolderToDropbox($dir.'/'.$item,$dropbox_link);
            else if(is_file($dir.'/'.$item)) {
                $clean_dir = str_replace("/path/to/backup", "", $dir);
                $dropbox_link->upload($dir.'/'.$item,$dropbox_folder.$clean_dir.'/');  
            } 
        }
    }
}

FolderToDropbox($siteroot,$uploader);

?>

@halfer 的建议是这样的(我刚刚根据他的想法修改了你的潜在解决方案),所以他应该相信:

<?php

function uploadx($dirtocopy, $dropboxdir, $uploader){
    if ($handle = opendir($dirtocopy)) {
        while (false !== ($entry = readdir($handle))) {
            if ($entry != "." && $entry != "..") {

                if(is_dir($entry)){
                    uploadx($dirtocopy.$entry.'/', $dropboxdir.$entry.'/', $uploader);
                } else {
                    $uploader->upload($dirtocopy.$entry, $dropboxdir.$entry);
                }

            }
        }
        closedir($handle);
    }
}

// Dropbox username/password
$dropbox_email='[email protected]';
$dropbox_pass='password';

// File to backup
$siteroot = "./";

include("DropboxUploader.php");

$uploader = new DropboxUploader($dropbox_email, $dropbox_pass);

uploadx($siteroot, 'Backup/Files/', $uploader);

?>

顺便说一句,上面的函数来自这里:如何仅使用 PHP 将文件从特定目录备份到 Dropbox?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 PHP 将文件从服务器复制到 Dropbox? [复制] 的相关文章

  • 让登录更安全

    我已使用此代码进行管理员登录 仅当用户输入正确的用户名和密码时才应打开loginhome php 但后来我意识到这根本不安全 任何人都可以直接访问 mywebsite loginhome php 而无需登录 注销后 可以使用后退按钮打开 l
  • 如何从 Laravel 中的表中选择所有列名称?

    我试图从表中获取所有列名Teller 功能 public function getTableColumns tables return DB select DB raw SELECT COLUMN NAME DATA TYPE COLUMN
  • openssl_pkey_get_details($res) 不返回公共指数

    我在用着这个例子 https stackoverflow com a 12575951 2016196使用 php 生成的密钥进行 javascript 加密openssl图书馆 但是 details openssl pkey get de
  • 如何解压 PHP/Lumen/Laravel 的 gzip 请求?

    我收到来自第三方的 gzip 编码文本请求 1mb 所以这是有道理的 我的测试路线 router gt post testgzip function Illuminate Http Request request decompressed
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • 扩展蓝图类?

    我想覆盖timestamps 函数中发现Blueprint班级 我怎样才能做到这一点 e g public function up Schema create users function Blueprint table table gt
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • 在 PHP 中使用 phpseclib 时出现 RSA 问题

    我正在尝试在 phpseclib 中使用 RSA 实现 我认为在函数中执行一次代码并重新使用该函数会更容易 当我尝试向代码发送短信时 我收到一条错误消息 提示 解密错误 测试还让我意识到每次代码运行时密文都是不同的 所以我显然在那里做错了什
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • jQuery Mobile 表单验证

    我有一个移动网站 除了验证之外一切都工作正常 基本上我希望从用户那里获取值 然后在单独的页面 process php 上处理它们 但是 在这样做之前 我需要检查以确保字段已填充 我已经研究了几种方法来做到这一点 但似乎没有一种有效 我现在有
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • 如果循环中内存超出,我可以在 for 循环中抛出异常吗?

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何处理 foreach 循环中发生
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • PHP HEREDoc (EOF) 语法在 Sublime Text 3 上突出显示与正斜杠的差异

    我不熟悉 Sublime Text 3 如何使用语法突出显示 例如 如果它纯粹依赖于主题 或者它内置于主题运行的标准中 但就我而言 使用 PHP 的 HERE 文档和转发存在一些语法突出显示差异斜线 一旦出现正斜杠 ST3 就会认为以下所有
  • Doctrine EntityManager 清除嵌套实体中的方法

    我想用学说批量插入处理 http doctrine orm readthedocs org en latest reference batch processing html为了优化大量实体的插入 问题出在 Clear 方法上 它表示此方法
  • 使用正则表达式提取两个短语之间的所有单词[重复]

    这个问题在这里已经有答案了 我正在尝试使用以下正则表达式提取两个短语之间的所有单词 b item W w W 0 2 1 one W w W 0 3 business b b item W w W 0 2 3 three W w W 0 3
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array
  • 简单的 PHP 表单:电子邮件附件(代码 Golf)

    想象一下 一个用户想要在其网站上放置一个表单 该表单将允许网站访问者上传一个文件和一条简单的消息 该消息将立即通过电子邮件发送 即 该文件未存储在服务器上 或者如果该文件存储在服务器上 仅暂时 作为文件附件 并在邮件正文中添加注释 查看更多
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • 在java中加载freemarker模板时出现FileNotFoundException

    加载 freemarker 模板时出现文件未找到异常 即使该模板实际上存在于路径中 更新 这是作为网络服务运行的 它将根据搜索查询向客户端返回 xml 当我从另一个 java 程序 从静态主程序 调用模板时 模板加载成功 但是当客户端请求x
  • 如何使用带有 url 和基本身份验证凭据的 scrapy shell?

    我想用scrapy shell并测试需要基本身份验证凭据的 url 响应数据 我尝试检查 scrapy shell 文档 但在那里找不到它 我尝试过scrapy shell http user email protected 但没有成功 有
  • 使用 h:selectBooleanCheckbox 显示/隐藏其他输入字段

    我正在使用 JSF2 和 Java 构建 Web 应用程序 我想构建一个如下图所示的表单 When somebody unchecks the checkbox the form should disappear Here是一个 gwt 的
  • 如何更改 Sublime Text 中的选项卡名称?

    是否可以更改具有奇怪名称的文件的选项卡名称 它们无法在磁盘上重命名 但在 Sublime 中很难跟上疯狂的文件名 D 在 ST 控制台中输入view set name My changed name 将字符串的内容替换为您想要的名称 您还可
  • 清除单元格谷歌工作表脚本

    我在 googlesheet 上有一张表 其中有很多行和列 我想清除 B 列中值为 0 的单元格 我写了这段代码 但它不起作用 我不是 javascript 专家 function clean0 var sheet SpreadsheetA
  • 忽略库内抛出和捕获的异常

    我使用的 Python 标准库和其他库 例如 PyQt 有时会在非错误条件下使用异常 除了函数之外看下面os get exec path 它使用多个try用于捕获在尝试查找某些环境数据时引发的异常的语句 try path list env
  • 在 Python 中使用命令行参数:了解 sys.argv [重复]

    这个问题在这里已经有答案了 我目前正在学习 艰难地学习Python 我认为这个例子可能已经过时了 所以我想在这里得到反馈 我正在使用Python 3 1 from sys import argv script first second th
  • ValueError:Python 字典中无法解压的值太多[重复]

    这个问题在这里已经有答案了 我有一个接受字符串 列表和字典的函数 def superDynaParams myname likes relatives n is a list and n is dictionary print print
  • JavaScript - 字符串正则表达式反向引用

    您可以在 JavaScript 中像这样反向引用 var str 123 test 123 str str replace a z gi 2 这将 非常愚蠢 用 test 替换 test 但想象一下我想将 2 的结果字符串传递给一个函数 该
  • 如何在 IE9 中使用 MSHTML 的 addEventListener 添加事件侦听器?

    MSDN 文档为addEventListener表示它接受以下形式的回调函数IDispatch 目的 从 C 我使用 COM 互操作 Visual Studio 将参数类型显示为object 我找了一个IEventListener界面或类似
  • C# 从字符串中解析浮点数

    我正在从 XML 文件中读取数字 其他数字带有逗号分隔符 0 1111 其他数字带有点 0 1111 我如何解析这些数字才能最终得到所需的结果 我尝试使用float Parse reader Value System Globalizati
  • VisualSVN 服务器 3.2 - 意外的 HTTP 状态 405

    我在计算机上安装了 VisualSVN Server 以进行源代码控制 当我尝试通过存储库浏览器访问它时 出现错误 Unexpected HTTP Status 405 Method Not Allowed on 23WEB view he
  • Visual Studio 可以像 app.config 一样自动调整其他文件的名称吗?

    将应用程序配置文件添加到 Visual Studio 中的 Net 项目时 它将被命名为app config并将被重命名 在构建时 为ApplicationName config 我有一个包含大约 40 个项目的解决方案 我想为其中一些添加
  • 从列表中删除重复的元素

    我有一个list of character vectors my list lt list e1 c a b c k e2 c b d e e3 c t d g a f 我正在寻找一个function对于任何character出现不止一次l
  • 将数据从 firestore 导入 bigQuery

    我已将我的帐户升级为 blaze 这是先决条件之一 我尝试遵循FAQ将 BigQuery 链接到 Firebase 仍然无法看到从 firestore 或 firebase realtimeDatabase 到 bigQuery 的任何数据
  • aws sns 确认订阅请求处理问题

    我正在尝试为 s3 中的存储桶实现 aws sns 服务 并且我正在关注此文档https docs aws amazon com sns latest dg SendMessageToHttp html据此 确认订阅的请求中将有订阅 url
  • Java中的单继承作弊?

    我听说有一种方法可以欺骗单继承并在Java中实现多重继承 有谁知道如何实现这个 不使用接口 只是出于好奇 当然可以 但这很棘手 您应该认真考虑这是否是您想要的方式 这个想法是使用基于范围的继承和基于类型的继承 这是类型对话 表示出于内部目的
  • jquery ui sortables 连接列表:复制项目

    我有两个列表 我希望它们都可以排序 并且希望能够将项目从 list1 复制 拖动 到 list2 反之亦然 http jqueryui com demos sortable connect lists 是我想要的 但项目被移动 而不是复制
  • 圆-矩形碰撞检测(交叉点)

    如何判断圆形和矩形在二维欧几里得空间中是否相交 即经典的二维几何 我将这样做 bool intersects CircleType circle RectType rect circleDistance x abs circle x rec
  • 如何使用 PHP 将文件从服务器复制到 Dropbox? [复制]

    这个问题在这里已经有答案了 我想我可能找到了一个 PHP 程序 可以将特定文件夹中的文件上传到我的 Dropbox 帐户 完整的解决方案可以找到here 该代码似乎有效 因为正在上传类似的文件和文件夹 但是 我不希望预先压缩服务器上的文件