Your workflow is unique 👨💻 - tell us how you use Dropbox here.
Forum Discussion
Priya M.
8 years agoExplorer | Level 4
Dropbox API for search in PHP
Hi,
I'm trying to search for a file uploaded in my Dropbox APP using the following code:
$data = json_encode(array("path" => "/", "query" => $this->filename, "mode" => "filename"));
$...
Greg-DB
Dropbox Community Moderator
8 years agoLooking over your code, there are a few things that should be fixed:
- When specifying the root folder, you need to use the empty string "", not "/".
- You'll need to POST (CURLOPT_POST) not PUT (CURLOPT_PUT).
- You should not turn off SSL verification if possible.
- The parameters must be passed as JSON in the HTTP request body, not in a header.
You can find more information on using this endpoint here:
https://www.dropbox.com/developers/documentation/http/documentation#files-search
There's an example of calling an "RPC" endpoint like this in PHP here:
Priya M.
8 years agoExplorer | Level 4
Hi,
Thank you for your reply. I was able to do that. Removing CURLOPT_PUT resolved the issue.
I have now issues with reading the files uploaded on dropbox. I can see that the endpoint for this purpose is : https://www.dropbox.com/developers/documentation/http/documentation#files-download
I'm not able to understand how to use the output of the above API to read instead of saving the file locally?
- Greg-DB8 years ago
Dropbox Community Moderator
That endpoint returns the file context in the response body. What your app does with that response is up to you. I.e., you can have it read it into memory and do something with it there, or you can save it to a local file.
Here's an example that tells curl to save it to a local file:
https://stackoverflow.com/documentation/dropbox-api/408/downloading-a-file/20965/downloading-a-file-with-metadata-via-curl-in-php#t=201706161828140145756
Alternatively, instead of saving it to a local file using curl's CURLOPT_FILE option, you can read the file data from the curl_exec output, e.g., in that example saved as $output.- Priya M.8 years agoExplorer | Level 4
Hi,
Thank you for your reply.
We do not want to save in local file. Also, reading in memory may cause memory exhausted issue with large files. Same is the issue with saving the read data in a variable when the file is large enough.
Instead, we want to read the file in parts instead of reading the entire file at once. Is there any option to the same?
- Greg-DB8 years ago
Dropbox Community Moderator
The file data is returned in the HTTP response, so you could read from it as a stream if your HTTP client supports it.
It looks like PHP curl's may effectively support this via CURLOPT_WRITEFUNCTION:
http://docs.php.net/function.curl-setopt
About Dropbox API Support and Feedback
Get help with the Dropbox API from fellow developers and experts.
The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.
If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X, Facebook or Instagram.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!