{"id":661,"date":"2025-06-11T12:18:26","date_gmt":"2025-06-11T04:18:26","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/xtywj\/661.html"},"modified":"2025-06-11T12:18:26","modified_gmt":"2025-06-11T04:18:26","slug":"php%ef%bc%9a%e5%a6%82%e4%bd%95%e5%b0%86%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e5%88%b0dropbox","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/661.html","title":{"rendered":"PHP\uff1a\u5982\u4f55\u5c06\u6587\u4ef6\u4e0a\u4f20\u5230Dropbox"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#23558;&#25991;&#20214;&#19978;&#20256;&#21040;Dropbox&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;Dropbox&#30340;API&#26469;&#23454;&#29616;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#27493;&#39588;&#25351;&#21335;&#21644;&#31034;&#20363;&#20195;&#30721;&#65292;&#23637;&#31034;&#22914;&#20309;&#36890;&#36807;PHP&#23558;&#25991;&#20214;&#19978;&#20256;&#21040;Dropbox&#12290;<\/p>\n<h3>&#27493;&#39588;&#25351;&#21335;<\/h3>\n<ol>\n<li>\n<p><strong>&#21019;&#24314;Dropbox&#24212;&#29992;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#30331;&#24405;&#21040;Dropbox&#24320;&#21457;&#32773;&#32593;&#31449;&#65288;<a href=\"https:\/\/www.zhaozhao123.cn\/skin\/go?url=aHR0cHM6Ly93d3cuZHJvcGJveC5jb20vZGV2ZWxvcGVycy9hcHBz\" rel=\"noopener noreferrer nofollow\">https:\/\/www.dropbox.com\/developers\/apps<\/a>&#65289;&#12290;<\/li>\n<li>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#24212;&#29992;&#31243;&#24207;&#65292;&#24182;&#33719;&#21462;<code>App Key<\/code>&#21644;<code>App Secret<\/code>&#12290;<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#23433;&#35013;Dropbox PHP SDK<\/strong>&#65306;<\/p>\n<ul>\n<li>&#20351;&#29992;Composer&#26469;&#23433;&#35013;Dropbox PHP SDK&#65306;\n<pre><code class=\"language-bash\">composer require dropbox\/dropbox-sdk-php<\/code><\/pre><\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#37197;&#32622;Dropbox&#23458;&#25143;&#31471;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#22312;&#20320;&#30340;PHP&#33050;&#26412;&#20013;&#65292;&#37197;&#32622;Dropbox&#23458;&#25143;&#31471;&#65306;<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">require 'vendor\/autoload.php';\n\nuse DropboxClient;\n\n\/\/ &#35774;&#32622;Dropbox App Key &#21644; App Secret\n$dropboxKey = 'your_dropbox_app_key';\n$dropboxSecret = 'your_dropbox_app_secret';\n\n\/\/ &#33719;&#21462;Access Token&#65288;&#22914;&#26524;&#36824;&#27809;&#26377;&#65289;\nif (empty($_SESSION['access_token'])) {\n    $authUrl = Dropbox::getAuthUrl([\n        'scope' =&gt; 'files.write',\n        'redirect_uri' =&gt; 'http:\/\/localhost\/callback', \/\/ &#20320;&#30340;&#22238;&#35843;URL\n    ]);\n    header('Location: ' . $authUrl);\n    exit;\n}\n\n\/\/ &#22788;&#29702;&#25480;&#26435;&#22238;&#35843;\nif (!empty($_GET['code'])) {\n    $accessToken = Dropbox::getAccessToken($_GET['code']);\n    $_SESSION['access_token'] = $accessToken;\n} else if (!empty($_SESSION['refresh_token'])) {\n    $accessToken = Dropbox::getRefreshToken($_SESSION['refresh_token']);\n    $_SESSION['access_token'] = $accessToken;\n}\n\n$client = new Client($accessToken);\n\n\/\/ &#25991;&#20214;&#36335;&#24452;\n$filePath = '\/path\/to\/your\/local\/file.txt';\n$remotePath = '\/path\/to\/your\/dropbox\/folder\/file.txt';\n\ntry {\n    $client-&gt;putFileOverwrite($remotePath, fopen($filePath, 'rb'));\n    echo \"&#25991;&#20214;&#24050;&#25104;&#21151;&#19978;&#20256;&#21040;Dropbox!\";\n} catch (Exception $e) {\n    echo \"&#19978;&#20256;&#22833;&#36133;: \" . $e-&gt;getMessage();\n}<\/code><\/pre>\n<ol start=\"4\">\n<li><strong>&#36816;&#34892;&#33050;&#26412;<\/strong>&#65306;\n<ul>\n<li>&#23558;&#19978;&#36848;&#20195;&#30721;&#20445;&#23384;&#20026;&#19968;&#20010;PHP&#25991;&#20214;&#65288;&#20363;&#22914;<code>upload_to_dropbox.php<\/code>&#65289;&#65292;&#24182;&#30830;&#20445;&#23427;&#20301;&#20110;&#20320;&#30340;&#26381;&#21153;&#22120;&#19978;&#12290;<\/li>\n<li>&#25171;&#24320;&#27983;&#35272;&#22120;&#65292;&#35775;&#38382;&#35813;&#25991;&#20214;&#65292;&#25353;&#29031;&#25552;&#31034;&#36827;&#34892;&#25480;&#26435;&#12290;<\/li>\n<li>&#25480;&#26435;&#21518;&#65292;&#25991;&#20214;&#23558;&#20250;&#34987;&#19978;&#20256;&#21040;&#25351;&#23450;&#30340;Dropbox&#30446;&#24405;&#12290;<\/li>\n<\/ul><\/li>\n<\/ol>\n<h3>&#31034;&#20363;&#20195;&#30721;&#35299;&#37322;<\/h3>\n<ul>\n<li>\n<p><strong>&#21021;&#22987;&#21270;Dropbox&#23458;&#25143;&#31471;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-php\">$client = new Client($accessToken);<\/code><\/pre>\n<p>&#36825;&#34892;&#20195;&#30721;&#21019;&#24314;&#20102;&#19968;&#20010;Dropbox&#23458;&#25143;&#31471;&#23454;&#20363;&#65292;&#20351;&#29992;&#20320;&#20174;Dropbox&#33719;&#21462;&#30340;&#35775;&#38382;&#20196;&#29260;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#35774;&#32622;&#25991;&#20214;&#36335;&#24452;&#21644;&#36828;&#31243;&#36335;&#24452;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-php\">$filePath = '\/path\/to\/your\/local\/file.txt';\n$remotePath = '\/path\/to\/your\/dropbox\/folder\/file.txt';<\/code><\/pre>\n<p>&#36825;&#20004;&#34892;&#20195;&#30721;&#23450;&#20041;&#20102;&#26412;&#22320;&#25991;&#20214;&#30340;&#36335;&#24452;&#21644;&#30446;&#26631;Dropbox&#25991;&#20214;&#30340;&#36335;&#24452;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#19978;&#20256;&#25991;&#20214;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-php\">try {\n  $client-&gt;putFileOverwrite($remotePath, fopen($filePath, 'rb'));\n  echo \"&#25991;&#20214;&#24050;&#25104;&#21151;&#19978;&#20256;&#21040;Dropbox!\";\n} catch (Exception $e) {\n  echo \"&#19978;&#20256;&#22833;&#36133;: \" . $e-&gt;getMessage();\n}<\/code><\/pre>\n<p>&#36825;&#34892;&#20195;&#30721;&#23581;&#35797;&#23558;&#26412;&#22320;&#25991;&#20214;&#19978;&#20256;&#21040;Dropbox&#12290;&#22914;&#26524;&#19978;&#20256;&#25104;&#21151;&#65292;&#20250;&#36755;&#20986;&ldquo;&#25991;&#20214;&#24050;&#25104;&#21151;&#19978;&#20256;&#21040;Dropbox!&rdquo;&#65307;&#22914;&#26524;&#19978;&#20256;&#22833;&#36133;&#65292;&#20250;&#36755;&#20986;&#38169;&#35823;&#20449;&#24687;&#12290;<\/p>\n<\/li>\n<\/ul>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#20320;&#23601;&#21487;&#20197;&#20351;&#29992;PHP&#23558;&#25991;&#20214;&#19978;&#20256;&#21040;Dropbox&#20102;&#12290;&#24076;&#26395;&#36825;&#23545;&#20320;&#26377;&#24110;&#21161;&#65281;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>Dropbox &#26159;&#19968;&#23478;&#39046;&#20808;&#30340;&#20113;&#31471;&#23384;&#20648;&#26381;&#21153;&#65292;&#20801;&#35768;&#29992;&#25143;&#22312;&#32447;&#20445;&#23384;&#25991;&#20214;&#24182;&#21516;&#27493;&#21040;&#35774;&#22791;&#19978;&#12290;&#23558; Dropbox &#30340;&#25991;&#20214;&#19978;&#20256;&#21151;&#33021;&#38598;&#25104;&#21040;&#24744;&#30340; PHP &#24212;&#29992;&#31243;&#24207;&#20013;&#21487;&#20197;&#20026;&#29992;&#25143;&#25552;&#20379;&#26080;&#32541;&#30340;&#20113;&#23384;&#20648;&#20307;&#39564;&#12290;&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#35752;&#22914;&#20309;&#20351;&#29992; PHP &#23558;&#25991;&#20214;&#19978;&#20256;&#21040; Dropbox&#12290;<\/p><h2>&#35774;&#32622;&#23436;&#25104;<\/h2><p>&#22312;&#25105;&#20204;&#28145;&#20837;&#20195;&#30721;&#20043;&#21069;&#65292;&#26377;&#20960;&#20010;&#21069;&#32622;&#26465;&#20214;&#38656;&#35201;&#28385;&#36275;&#65306;<\/p><p>&#24744;&#30340;PHP&#29615;&#22659;&#24212;&#35813;&#25903;&#25345;cURL&#12290;<\/p><p>&#29983;&#25104;&#30340;&#35775;&#38382;&#20196;&#29260;&#23545;&#24212;&#30340;Dropbox&#24212;&#29992;<\/p><p>&#19968;&#20010;Dropbox&#36134;&#25143;<\/p><p>&#39318;&#20808;&#65292;&#35775;&#38382;Dropbox&#24320;&#21457;&#32773;&#38376;&#25143;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#24212;&#29992;&#12290;&#23436;&#25104;&#21518;&#65292;&#24744;&#23558;&#33719;&#24471;&#19968;&#20010;&#35775;&#38382;&#20196;&#29260;&#65292;&#36825;&#26159;&#36827;&#34892;&#36523;&#20221;&#39564;&#35777;&#25152;&#24517;&#38656;&#30340;&#12290;<\/p><h2>Dropbox SDK&#30340;&#23433;&#35013;<\/h2><p>Dropbox &#25552;&#20379;&#20102;&#19968;&#20010;&#29992;&#20110; PHP &#30340; SDK&#65292;&#31616;&#21270;&#20102;&#25991;&#20214;&#20132;&#20114;&#25805;&#20316;&#12290;&#20351;&#29992; Composer &#23433;&#35013;&#23427;&#65306;<\/p><p><code>composer require spatie\/dropbox-api<\/code><\/p><p>&#30830;&#20445;&#22312;&#24744;&#30340;&#31995;&#32479;&#19978;&#23433;&#35013;&#20102; Composer&#65292;&#28982;&#21518;&#22312;&#24744;&#30340;PHP&#39033;&#30446;&#26681;&#30446;&#24405;&#19979;&#36816;&#34892;&#19978;&#36848;&#21629;&#20196;&#12290;<\/p><h2>&#27491;&#22312;&#19978;&#20256;&#25991;&#20214;&#12290;<\/h2><p>&#35201;&#20351;&#29992;PHP&#19978;&#20256;&#25991;&#20214;&#21040;Dropbox&#65292;&#25105;&#20204;&#23558;&#20351;&#29992;&#20043;&#21069;&#25552;&#21040;&#30340;SDK&#12290;&#39318;&#20808;&#65292;&#35774;&#32622;&#19968;&#20010;Dropbox&#23458;&#25143;&#31471;&#23454;&#20363;&#65306;<\/p><pre><code>&lt;?php\n  use SpatieDropboxClient;\n\n  $client = new Client('YOUR_ACCESS_TOKEN');\n?&gt;\n<\/code><\/pre><p>&#35831;&#23558; &#8216;YOUR_ACCESS_TOKEN&#8217; &#26367;&#25442;&#20026;&#20174; Dropbox &#24212;&#29992;&#35774;&#32622;&#20013;&#33719;&#21462;&#30340;&#23454;&#38469;&#20196;&#29260;&#12290;&#29616;&#22312;&#65292;&#24744;&#21487;&#20197;&#24320;&#22987;&#19978;&#20256;&#25991;&#20214;&#20102;&#65306;<\/p><pre><code>&lt;?php\n  $dropboxFile = fopen('\/path\/to\/your\/file.txt', 'rb');\n  $dropboxPath = '\/upload\/path\/file.txt';\n\n  $uploadedFile = $client-&gt;upload(\n      $dropboxPath,\n      $dropboxFile,\n      'add'\n  );\n  fclose($dropboxFile);\n\n  var_dump($uploadedFile);\n?&gt;\n<\/code><\/pre><p>&#36825;&#27573;&#20195;&#30721;&#20197;&#20108;&#36827;&#21046;&#35835;&#27169;&#24335;&#25171;&#24320;&#35201;&#19978;&#20256;&#30340;&#26412;&#22320;&#25991;&#20214;&#65292;&#24182;&#25351;&#23450;Dropbox&#20013;&#30340;&#36335;&#24452;&#65292;&#20197;&#20415;&#23558;&#25991;&#20214;&#19978;&#20256;&#21040;&#35813;&#20301;&#32622;&#12290;&#21442;&#25968;&ldquo;add&rdquo;&#30830;&#20445;&#22914;&#26524;&#25991;&#20214;&#24050;&#32463;&#23384;&#22312;&#65292;&#21017;&#19981;&#20250;&#34987;&#35206;&#30422;&#12290;<\/p><h2>&#38169;&#35823;&#22788;&#29702;<\/h2><p>&#38169;&#35823;&#22788;&#29702;&#22312;&#19978;&#20256;&#25991;&#20214;&#26102;&#38750;&#24120;&#37325;&#35201;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#26041;&#24335;&#25429;&#33719;&#24322;&#24120;&#65306;<\/p><pre><code>&lt;?php\n  try {\n    \/\/ Previous upload code\n  } catch (Exception $e) {\n    echo 'Error: ' . $e-&gt;getMessage();\n  }\n?&gt;\n<\/code><\/pre><p>&#36825;&#23558;&#20351;&#24744;&#33021;&#22815;&#20248;&#38597;&#22320;&#22788;&#29702;SDK&#25243;&#20986;&#30340;&#24322;&#24120;&#12290;<\/p><h2>&#20998;&#29255;&#19978;&#20256;<\/h2><p>&#22914;&#26524;&#20320;&#22788;&#29702;&#30340;&#25991;&#20214;&#36807;&#22823;&#65292;&#36229;&#36807;&#20102;Dropbox&#19978;&#20256;&#38480;&#21046;&#65292;&#20320;&#38656;&#35201;&#36827;&#34892;&#20998;&#27573;&#19978;&#20256;&#12290;&#20197;&#19979;&#26159;&#20855;&#20307;&#27493;&#39588;&#65306;<\/p><pre><code>&lt;?php\n  $source = fopen('\/path\/to\/your\/largefile.txt', 'rb');\n  $dropboxPath = '\/largefile.txt';\n\n  \/\/ Start by uploading the first chunk\n  $chunkSize = 2 * 1024 * 1024; \/\/ 2 MB\n  $start = $client-&gt;uploadSessionStart(fread($source, $chunkSize));\n\n  \/\/ Get the session ID to continue\n  $sessionId = $start['session_id'];\n  $offset = $chunkSize;\n\n  while (!feof($source)) {\n    \/\/ Get the next chunk\n    $chunk = fread($source, $chunkSize);\n    $client-&gt;uploadSessionAppendV2($chunk, $sessionId, $offset);\n    $offset += $chunkSize;\n  }\n\n  \/\/ Finish the upload session\n  $client-&gt;uploadSessionFinish(fread($source, $chunkSize), ['cursor' =&gt; ['session_id' =&gt; $sessionId, 'offset' =&gt; $offset], 'commit' =&gt; ['path' =&gt; $dropboxPath, 'mode' =&gt; 'add']]);\n\n  fclose($source);\n?&gt;\n<\/code><\/pre><p>&#35813;&#36807;&#31243;&#28041;&#21450;&#21551;&#21160;&#20250;&#35805;&#65292;&#21453;&#22797;&#28155;&#21152;&#20998;&#22359;&#65292;&#28982;&#21518;&#23436;&#25104;&#20250;&#35805;&#12290;&#23427;&#30830;&#20445;&#21363;&#20351;&#25991;&#20214;&#36739;&#22823;&#20063;&#33021;&#19978;&#20256;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;&#36825;&#20010;&#25945;&#31243;&#20013;&#65292;&#24744;&#23398;&#20064;&#20102;&#22914;&#20309;&#22312;PHP&#20013;&#35774;&#32622;Dropbox SDK&#24182;&#25104;&#21151;&#19978;&#20256;&#25991;&#20214;&#21040;Dropbox&#12290;&#36890;&#36807;&#36866;&#24403;&#30340;&#38169;&#35823;&#22788;&#29702;&#26426;&#21046;&#21644;&#22823;&#25991;&#20214;&#22788;&#29702;&#26041;&#24335;&#65292;&#24744;&#21487;&#20197;&#26080;&#32541;&#22320;&#23558;Dropbox&#25991;&#20214;&#19978;&#20256;&#38598;&#25104;&#21040;&#24744;&#30340;PHP&#24212;&#29992;&#31243;&#24207;&#20013;&#65292;&#20174;&#32780;&#25552;&#21319;&#29992;&#25143;&#20307;&#39564;&#21644;&#25991;&#20214;&#31649;&#29702;&#33021;&#21147;&#12290;<\/p><p>&#35831;&#35760;&#20303;&#65292;&#36825;&#26159;&#19968;&#20221;&#31616;&#21270;&#29256;&#26412;&#30340;&#25351;&#21335;&#65292;&#24744;&#36824;&#21487;&#20197;&#36890;&#36807;Dropbox API&#21450;&#20854;PHP SDK&#25506;&#32034;&#20854;&#20182;&#26041;&#38754;&#65292;&#20363;&#22914;&#25991;&#20214;&#20849;&#20139;&#12289;&#20803;&#25968;&#25454;&#33719;&#21462;&#21644;&#25991;&#20214;&#31649;&#29702;&#31561;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#22312;PHP&#20013;&#19978;&#20256;&#25991;&#20214;&#24182;&#23558;&#20854;&#20445;&#23384;&#21040;Dropbox&#65292;&#35831;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#25805;&#20316;&#65306;<\/p>\n<ol>\n<li>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#24744;&#24050;&#23433;&#35013;&#20102;<code>dropbox-php-sdk<\/code>&#24211;&#12290;&#24744;&#21487;&#20197;&#20351;&#29992;Composer&#26469;&#23433;&#35013;&#23427;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require dropbox\/dropbox-api-client<\/code><\/pre>\n<\/li>\n<li>\n<p>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;PHP&#25991;&#20214;&#65288;&#20363;&#22914; <code>upload.php<\/code>) &#24182;&#28155;&#21152;&#20197;&#19979;&#20195;&#30721;&#65306;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">&lt;?php\n\n\/\/ &#26816;&#26597;&#26159;&#21542;&#24050;&#32463;&#30331;&#24405;\nif (!isset($_SESSION['dropbox_access_token'])) {\n    \/\/ &#35831;&#20808;&#30331;&#24405;Dropbox\n    header(\"Location: login.php\");\n    exit;\n}\n\n\/\/ &#33719;&#21462;&#24403;&#21069;&#26102;&#38388;&#25139;\n$timestamp = time();\n\n\/\/ &#33719;&#21462;Dropbox&#30340;Access Token\n$accessToken = $_SESSION['dropbox_access_token'];\n\n\/\/ &#35774;&#32622;Dropbox API URL\n$url = 'https:\/\/api.dropbox.com\/1\/files\/upload';\n\n\/\/ &#26500;&#24314;&#35831;&#27714;&#21442;&#25968;\n$params = [\n    'path' =&gt; $timestamp . '\/' . basename($_FILES['file']['name']),\n    'token' =&gt; $accessToken,\n];\n\n\/\/ &#23558;&#25991;&#20214;&#27969;&#20316;&#20026;&#21442;&#25968;&#20256;&#36882;\n$fileData = fopen($_FILES['file']['tmp_name'], 'r');\nfclose($fileData);\n\n\/\/ &#21457;&#36865;POST&#35831;&#27714;\n$response = file_get_contents($url, false, stream_context_create([\n    'http' =&gt; ['method' =&gt; 'POST', 'header' =&gt; \"Content-Type: application\/octet-stream\", 'content' =&gt; $params],\n]));\n\n\/\/ &#26816;&#26597;&#21709;&#24212;&#29366;&#24577;&#30721;\nif ($response) {\n    echo \"&#25104;&#21151;&#19978;&#20256;&#25991;&#20214;&#21040;Dropbox\";\n} else {\n    echo \"&#19978;&#20256;&#22833;&#36133;&#65292;&#35831;&#26816;&#26597;&#38169;&#35823;&#20449;&#24687;\";\n}\n?&gt;<\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p>&#22312;&#24744;&#30340;&#26381;&#21153;&#22120;&#19978;&#36816;&#34892;&#27492;&#33050;&#26412;&#65292;&#24182;&#26681;&#25454;&#25552;&#31034;&#36755;&#20837;&#24744;&#30340;Dropbox Access Token&#21644;&#25991;&#20214;&#21517;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#24403;&#24744;&#23436;&#25104;&#19978;&#20256;&#21518;&#65292;&#21487;&#20197;&#20351;&#29992;Dropbox&#23458;&#25143;&#31471;&#31243;&#24207;&#35775;&#38382;&#26032;&#21019;&#24314;&#30340;&#25991;&#20214;&#22841;&#25110;&#25991;&#20214;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#24744;&#22312;Dropbox&#20013;&#20026;&#35813;&#25991;&#20214;&#21019;&#24314;&#20102;&#19968;&#20010;&#21517;&#20026;&ldquo;my_file&rdquo;&#30340;&#25991;&#20214;&#22841;&#65292;&#24744;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#35775;&#38382;&#23427;&#65306;<\/p>\n<pre><code class=\"language-bash\">dropbox mkdir my_folder\/my_file\ndropbox mv my_folder\/my_file \/path\/to\/local\/file.txt<\/code><\/pre>\n<\/li>\n<li>\n<p>&#36816;&#34892;&#19978;&#36848;&#21629;&#20196;&#20197;&#21019;&#24314;&#25991;&#20214;&#22841;&#21644;&#31227;&#21160;&#25991;&#20214;&#33267;&#26412;&#22320;&#36335;&#24452;&#12290;<\/p>\n<\/li>\n<\/ol>\n<p>&#35831;&#27880;&#24847;&#65292;&#36825;&#20010;&#20363;&#23376;&#20165;&#29992;&#20110;&#28436;&#31034;&#30446;&#30340;&#12290;&#23454;&#38469;&#24212;&#29992;&#20013;&#65292;&#24744;&#38656;&#35201;&#32771;&#34385;&#26356;&#22797;&#26434;&#30340;&#23433;&#20840;&#24615;&#21644;&#24615;&#33021;&#22240;&#32032;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#35201;&#23558;&#25991;&#20214;&#19978;&#20256;&#21040;Dropbox&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;Dropbox&#30340;API&#038;#2..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[42],"tuisongtax":[],"class_list":["post-661","my1js","type-my1js","status-publish","hentry","my1js2nav-xtywj"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/661","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=661"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=661"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=661"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=661"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}