Hallo,
Momenteel zijn we een DropBox koppeling aan het maken voor een van onze diensten.
Het hele authorisatie/tokens opslaan proces werkt helemaal prima.
Nu zijn we met de laatste stap bezig: uploaden van afbeeldingen.
Dit is de volledige code van een API sample die prima werkt:
En dit is de aangepaste versie:PHP Code:
require_once("DropboxClient.php");
// you have to create an app at https://www.dropbox.com/developers/apps and enter details below:$dropbox = new DropboxClient(array( 'app_key' => "...", 'app_secret' => "...", 'app_full_access' => false,),'en');
handle_dropbox_auth($dropbox);
$dropbox->UploadFile($_FILES["the_upload"]["tmp_name"], $_FILES["the_upload"]["name"]);
function store_token($token, $name){ file_put_contents("tokens/$name.token", serialize($token));}
function load_token($name){ //if(!file_exists("tokens/$name.token")) return null; return @unserialize(......');
function delete_token($name){ @unlink("tokens/$name.token");}
function handle_dropbox_auth($dropbox){
$access_token = load_token("access"); if(!empty($access_token)) { $dropbox->SetAccessToken($access_token); } elseif(!empty($_GET['auth_callback']))
{ // then load our previosly created request token
$request_token = load_token($_GET['oauth_token']); if(empty($request_token)) die('Request token not found!');
$access_token = $dropbox->GetAccessToken($request_token); store_token($access_token, "access"); delete_token($_GET['oauth_token']); }
// checks if access token is required if(!$dropbox->IsAuthorized()) { // redirect user to dropbox auth page $return_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?auth_callback=1"; $auth_url = $dropbox->BuildAuthorizeUrl($return_url); $request_token = $dropbox->GetRequestToken(); store_token($request_token, $request_token['t']); die("Authentication required. <a href='$auth_url'>Click here.</a>"); }}
Als ik deze code uitvoer heb ik toegang aangezien ik even voor debuggen OK echo wanneer er toegang is.PHP Code:
require_once("$abspath/beheren/dropbox/DropboxClient.php");
// you have to create an app at https://www.dropbox.com/developers/apps and enter details below: $dropbox = new DropboxClient(array( 'app_key' => ".....", 'app_secret' => ".....", 'app_full_access' => false, ),'en');
function handle_dropbox_auth($dropbox) { $loadDropBoxToken = mysql_fetch_array(mysql_query("SELECT dropbox_token, dropbox FROM customer_tables WHERE sessionid='".mysql_real_escape_string($_GET["sid"])."'")); $newToken = @unserialize($loadDropBoxToken["dropbox_token"]); // first try to load existing access token $access_token = $newToken; if(!empty($access_token)) { $dropbox->SetAccessToken($access_token); echo "OK"; } } handle_dropbox_auth($dropbox);
Dat ik load delete en store heb weggehaald en enkel het nodige heb overgelaten zou dan niet uit moeten maken, die dragen allemaal bij aan het autorisatie proces en dat werkt prima.
Het required bestand wordt ook goed ingeladen en de api keys zijn ingesteld
Dit gaat dus goed, nu wordt de file velden via een loop 1 voor 1 verwerkt.
Ook het formulier staat ingesteld voor upload (werkt prima).
Nu waar het mis gaat:
In plaats van dat we de files moven naar een map op de server (wat prima werkt) gebruiken we DropBox.
De API sample gebruikt deze regel: $dropbox->UploadFile($_FILES["the_upload"]["tmp_name"], $_FILES["the_upload"]["name"]);
In onze versie staat: $dropbox->UploadFile($_FILES['n_'.$sortorder.'']['tmp_name'], $_FILES['n_'.$sortorder.'']["name"]);
Het enige verschil hier is de naam van het veld. Ook is de file zelf prima in orde, wordt bij move_uploaded_file netjes op de server geplaatst, hier kan het ook niet aan liggen lijkt me.
Heb diverse dingen geprobeerd maar kom er maar niet uit.
- DropBox API: sample werkt wel, aangepaste versie niet
-
16-07-2013, 12:36 #1
- Berichten
- 434
- Lid sinds
- 15 Jaar
DropBox API: sample werkt wel, aangepaste versie niet
-
In de schijnwerper
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic