I am trying to upload a file using Dropbox API v2. Unfortunately, there is no PHP library for Dropbox API v2.
https://www.dropbox.com/developers/documentation/http/documentation#files-upload
This is my code:
$token = 'sometoken'; // oauth token $headers = array("Authorization: Bearer ". $token, 'Dropbox-API-Arg: {"path": "/test.txt","mode": "add","autorename": true,"mute":false}', "Content-Type: application/octet-stream"); $url = 'https://content.dropboxapi.com/2/files/upload'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POST, true); $path = './google/file.json'; $fp = fopen($path, 'rb'); curl_setopt($ch, CURLOPT_INFILE, $fp); curl_setopt($ch, CURLOPT_INFILESIZE, filesize($path)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_VERBOSE, 1); $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); echo($response.'<br/>'); echo($http_code.'<br/>'); curl_close($ch); echo $response;
Creates test.txt, but 0 bytes. When I check the code, it reads 0 bytes.
And this is the result of executing the code:
* Trying 45.58.74.164... * Connected to content.dropboxapi.com (45.58.74.164) port 443 (#0) * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * successfully set certificate verify locations: * CAfile: C:\xampp\php\extras\ssl\cacert.pem CApath: none * NPN, negotiated HTTP1.1 * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * Server certificate: * subject: OU=Domain Control Validated; CN=dl.dropboxusercontent.com * start date: Jul 9 01:10:38 2016 GMT * expire date: May 7 20:27:38 2017 GMT * subjectAltName: host "content.dropboxapi.com" matched cert "content.dropboxapi.com" * issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certs.godaddy.com/repository/; CN=Go Daddy Secure Certificate Authority - G2 * SSL certificate verify ok. > POST /2/files/upload HTTP/1.1 Host: content.dropboxapi.com Accept: */* Authorization: Bearer sometoken Dropbox-API-Arg: {"path": "/test.txt","mode": "add","autorename": true,"mute":false} Content-Type: application/octet-stream Expect: 100-continue < HTTP/1.1 100 Continue < HTTP/1.1 200 OK < Server: nginx < Date: Thu, 15 Sep 2016 13:37:16 GMT < Content-Type: application/json < Transfer-Encoding: chunked < Connection: keep-alive < pragma: no-cache < cache-control: no-cache < X-Server-Response-Time: 461 < X-Dropbox-Request-Id: 7b0003052a45a92fac0e7afca80f4f4c < X-Robots-Tag: noindex, nofollow, noimageindex < * Connection #0 to host content.dropboxapi.com left intact {"name": "test.txt", "path_lower": "/test.txt", "path_display": "/test.txt", "id": "id:L2W5zzeox5IAAAAAAAAjvg", "client_modified": "2016-09-15T13:37:16Z", "server_modified": "2016-09-15T13:37:16Z", "rev": "ee6e21bf2e5c", "size": 0}<br/>200<br/>{"name": "test.tx t", "path_lower": "/test.txt", "path_display": "/test.txt", "id": "id:L2W5zzeox5IAAAAAAAAjvg", "client_modified": "2016-09-15T13:37:16Z", "server_modified": "2016-09-15T13:37:16Z", "rev": "ee6e21bf2e5c", "size": 0}