php - 在脚本中上传 Dropbox

标签 php dropbox dropbox-api dropbox-php

我有一个表单,允许用户填写多个方面,然后选择要上传的文件。

提交表单后,我想编写一些代码将文件保存到 Dropbox 帐户并访问直接下载链接并将其放入我托管的数据库中。

如果有人这样做过,是否有特定的 API 部分可供查看?或者有什么例子吗?

我似乎无法在 API 中找到它。

谢谢。

最佳答案

根据我在 API 中看到的内容,可以执行此操作。您需要下载 Dropbox Core API .在 zip 文件中,您将找到一个示例文件夹,其中包含用于身份验证、上传、下载、直接链接等的示例代码。只需查看 direct-link.php 并将其更改为您的需要。这是一个上传文件并生成直接下载链接的测试工作示例:

<?php

require_once "dropbox-php-sdk-1.1.2/lib/Dropbox/autoload.php";

use \Dropbox as dbx;

$dropbox_config = array(
    'key'    => 'your_key',
    'secret' => 'your_secret'
);

$appInfo = dbx\AppInfo::loadFromJson($dropbox_config);
$webAuth = new dbx\WebAuthNoRedirect($appInfo, "PHP-Example/1.0");

$authorizeUrl = $webAuth->start();
echo "1. Go to: " . $authorizeUrl . "<br>";
echo "2. Click \"Allow\" (you might have to log in first).<br>";
echo "3. Copy the authorization code and insert it into $authCode.<br>";

$authCode = trim('DjsR-iGv4PAAAAAAAAAAAbn9snrWyk9Sqrr2vsdAOm0');

list($accessToken, $dropboxUserId) = $webAuth->finish($authCode);
echo "Access Token: " . $accessToken . "<br>";

$dbxClient = new dbx\Client($accessToken, "PHP-Example/1.0");

// Uploading the file
$f = fopen("working-draft.txt", "rb");
$result = $dbxClient->uploadFile("/working-draft.txt", dbx\WriteMode::add(), $f);
fclose($f);
print_r($result);

// Get file info
$file = $dbxClient->getMetadata('/working-draft.txt');

// sending the direct link:
$dropboxPath = $file['path'];
$pathError = dbx\Path::findError($dropboxPath);
if ($pathError !== null) {
    fwrite(STDERR, "Invalid <dropbox-path>: $pathError\n");
    die;
}

// The $link is an array!
$link = $dbxClient->createTemporaryDirectLink($dropboxPath);
// adding ?dl=1 to the link will force the file to be downloaded by the client.
$dw_link = $link[0]."?dl=1";

echo "Download link: ".$dw_link."<br>";

?>

为了让它正常工作,我让它变得非常快。最终您可能需要对其进行一些调整,以使其满足您的需求。

关于php - 在脚本中上传 Dropbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21078934/

相关文章:

php - 在 Apache 服务器上将特定的 .htm 页面处理为 .php

java - 我如何在 selenium webdriver 中找到 'dropdown-toggle' 窗口的 Web 元素

java - 如何使用 android 将我录制的音频上传到 dropbox?

php - 在数据库中的查询由另一个选择的更改触发后更改选择的值

javascript - 如何使用 jQuery 获取非特定 DIV 元素的内容

python - 在 Django 中使用 Python Dropbox API

javascript - NODEJS、DROPBOX 重定向链接

Android Dropbox API - 身份验证成功后无法保存用户 token

java - 使用 Dropbox Java API 将文件上传到 Dropbox

php - 通过数据包嗅探保护经过身份验证的 PHP session 免受 session 劫持