我有一個表單,允許用戶填寫幾個方面,然後選擇要上傳的文件。Dropbox在腳本中上傳
當表單提交,我希望寫一些代碼的文件保存到Dropbox帳戶,並得到進入在我主持的數據庫的直接下載鏈接,這個地方。
如果有人這樣做,有沒有看API的特定部分?或者任何例子?
我似乎無法找到這個的API中。
謝謝。
我有一個表單,允許用戶填寫幾個方面,然後選擇要上傳的文件。Dropbox在腳本中上傳
當表單提交,我希望寫一些代碼的文件保存到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>";
?>
。最終你可能需要稍微調整一下,以滿足你的需求。
如何/何處獲得$ authCode? – alamnaryab
據我所知,這是在您完成授權過程時生成的。我發佈的例子結合了'examples/authorize.php','examples/upload-file.php'和'examples/direct-link.php'。你應該通過它們來更好地理解API的工作原理。 – tftd
所以我點擊了該鏈接後,它給了我這個消息說:「中輸入驗證碼進入安裝MyApps來完成的過程。我在哪裏正好把這個如果我可是從一個網站的工作? – Carlitos
有一個在覈心API手冊部分,見this鏈路。 所以,你可以使用上傳的部分是這樣的:
$f = file_get_contents('data.txt');
$result = $dbxClient->uploadFile("/data.txt", dbx\WriteMode::add(), $f);
echo 'file uploaded';
你管理與任何下方的答案來解決問題了嗎?如果是這樣,請花一點時間讓我們贊成並接受您找到的最佳答案。 :) – tftd