- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个 PHP 脚本来将文件从我网站上的特定目录备份到我的 Dropbox 帐户。
我试图搜索示例以及如何解决它,但我只找到了备份数据库或购买现成解决方案的代码。
这是我试过的代码
<?php
$passw = "jason"; //change this to a password of your choice.
if ($_POST) {
require 'DropboxUploader.php';
try {
// Rename uploaded file to reflect original name
if ($_FILES['file']['error'] !== UPLOAD_ERR_OK)
throw new Exception('File was not successfully uploaded from your computer.');
$tmpDir = uniqid('/tmpCapes/');
if (!mkdir($tmpDir))
throw new Exception('Cannot create temporary directory!');
if ($_FILES['file']['name'] === "")
throw new Exception('File name not supplied by the browser.');
$tmpFile = $tmpDir.'/'.str_replace("/\0", '_', $_FILES['file']['name']);
if (!move_uploaded_file($_FILES['file']['tmp_name'], $tmpFile))
throw new Exception('Cannot rename uploaded file!');
if ($_POST['txtPassword'] != $passw)
throw new Exception('Wrong Password');
// Upload
$uploader = new DropboxUploader('user@example.com', 'password');// enter dropbox credentials
$uploader->upload($tmpFile, $_POST['dest']);
echo '<span style="color: green;font-weight:bold;margin-left:393px;">File successfully uploaded to my Dropbox!</span>';
} catch(Exception $e) {
echo '<span style="color: red;font-weight:bold;margin-left:393px;">Error: ' . htmlspecialchars($e->getMessage()) . '</span>';
}
// Clean up
if (isset($tmpFile) && file_exists($tmpFile))
unlink($tmpFile);
if (isset($tmpDir) && file_exists($tmpDir))
rmdir($tmpDir);
}
?>
最佳答案
你需要递归代码。
编写一个以 dir 作为参数的函数。
让它循环查看每个文件的目录。对于每个文件,它检查它是否是一个目录,如果不是,则复制它。
如果是目录,则函数调用自身。
例如
// your code
require 'DropboxUploader.php';
$dirtocopy = './example_directory/';
$dropboxdir = 'backupdir/';
$uploader = new DropboxUploader('sample-email@gmail.com', 'password');// enter dropbox credentials
$errors = array(); // to store errors.
// function definition
function copyDirRecursive($dir) {
global $uploader; // makes the "$uploader" below the one from outside the function
if(is_dir($dir)) { // added if/else to check if is dir, and create handle for while loop
$handle = opendir($dir);
if($handle === false) { // add if statements like this wherever you want to check for an error
$errors[] = $php_errormsg; // http://php.net/manual/en/reserved.variables.phperrormsg.php
}
} else {
return false;
}
while(false !== ($file = readdir($handle))) { // changed foreach to while loop
if(!isdir($file)) {
// copy the file
// cp $dir . '/' . $file to $dropbox . '/' . $dir . '/' . $file; // pseudocode
// below is actual code that hopefully will work
$uploader->upload($dir.$file,$dropboxdir.$file);
} else {
if(!is_link($file)) { // probably best not to follow symlinks, so we check that with is_link()
copyDirRecursive($dir . '/' . $file); // recursion time
}
}
}
}
// CALL THE FUNCTION
copyDirRecursive($dirtocopy); // you have to call a function for it to do anything
print_r($errors); // use this or var_dump($errors) to see what errors came up
关于php - 如何仅使用 PHP 将文件从特定目录备份到 Dropbox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15356766/
我想将文件从服务器推送到我自己的 Dropbox。我可以在服务器上存储 API token 甚至(虽然不情愿)帐户密码。我不想在服务器上安装 Dropbox。 我还需要在 Dropbox 开发者主页创
有没有办法通过 Dropbox 选择器获取用于共享文档的短网址? 最佳答案 不,不像 Dropbox Core API , Dropbox Chooser不提供获取短 URL 的能力。 当然,这并不妨
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 5年前关闭。 Improve this questi
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我正在尝试开发一个使用某种云存储的应用程序。我认为 dropbox 非常适合使用。我已经有了我的应用 key 和应用 key 。 在他们为 DBRoulette 提供的示例中,您通过外部 GUI 登录
我正尝试在我的网络应用程序中迁移到 dropbox-api v2。目前我有打开弹出窗口的实现,用户连接到他/她的保管箱,我得到 token 。我用它来访问用户在后续步骤中在 Dropbox.choos
我正尝试在我的网络应用程序中迁移到 dropbox-api v2。目前我有打开弹出窗口的实现,用户连接到他/她的保管箱,我得到 token 。我用它来访问用户在后续步骤中在 Dropbox.choos
据我所知Zapier基本使用Webhooks将服务相互链接。支持的服务之一是 Dropbox .但是 Dropbox(仍然)不支持 webhook。 (即:Dropbox 无法向选择的任意 webho
Dropbox 是否可以在文件更改时发出通知,即新上传的到达或文件已更改。 最佳答案 正如 Kannan 所指出的,有一个名为 /delta 的新 API 端点。这比轮询或 RSS 更好。 这也可以与
Dropbox Rest api,在函数metatada中有一个名为“hash”的参数https://www.dropbox.com/developers/reference/api#metadata
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我需要用户授予我的应用访问他们 Dropbox 的权限,但我非常希望他们不必离开我的网站然后再回来。我所知道的身份验证 API 要求用户登录到他们的 Dropbox 帐户,并且他们在 Dropbox
是否可以在拥有该应用程序的所有用户帐户之间共享应用程序保存的数据? 最佳答案 这不是受支持的操作;数据存储 API 实际上是作为本地存储的同步替代品,而不是作为访问单个共享数据库的方式。 更新:现在支
问题是如何在中列出最近修改过的文件保管箱 帐户使用他们的 API? 保管箱 web UI 可以显示 recently changed files 的摘要,但我在他们的 API documentatio
如何使用 dropbox api 编辑文件或文件夹名称? 我正在使用这个引用: https://www.dropbox.com/developers/core/docs 还有什么吗? 这可能吗? 最佳
我正在尝试使用他们的 java API(版本 2-beta-4)将一些文件上传到保管箱,但其中一些文件具有相同的名称。 我想知道的是:我发送文件(例如“file.txt”)到保管箱的原因是什么,该文件
在the document of Dropbox Chooser我们可以从 files[0].link 获取共享页面 url,但我们需要直接下载链接。我如何获得它? 最佳答案 我在 the forum
我正在尝试将一些文件从一个文件夹移动到另一个文件夹。 这是我的 curl 请求: curl -X POST https://api.dropboxapi.com/2/files/move \ --
我有一个网络应用程序,用户可以在其中上传他的 Logo 图片 使用 dropbox api 我可以将文件保存到一个很棒的 dropbox 文件夹中 但是我想获取下载链接,以便使用我的 angular
我需要一个简单的网络表单,它还可以让人们上传一些 pdf。我想我可以做的(因为上传文件的大小和数量)是将这个应用程序的后端绑定(bind)到我的 Dropbox 帐户或我的 box.com 帐户。两种
我是一名优秀的程序员,十分优秀!