[wp-hackers] POSTing a file via wp_remote_post
David Anderson
david at wordshell.net
Fri Jan 11 11:36:15 UTC 2013
I'm creating a WordPress consumer for the PHP DropBox API
(https://github.com/benthedesigner/dropbox). This will allow using that
API toolkit inside a WordPress plugin, and being able to use
wp_remote_post function for widest compatibility. (The API toolkit
presently only has a Curl consumer).
This is working for basic POST requests. That was easy; when passed an
array of things to POST, I send them along to wp_remote_post.
However, when it comes to uploading files, the DropBox API kit is
passing me arrays like this. Notice the array entry for file:
Array
(
[filename] => myfolder/myfile.zip
[file] => @/path/to/myfile.zip;filename=myfolder/myfile.zip
[filename] => myfolder/myfile.zip
[oauth_consumer_key] => (snip)
[oauth_signature_method] => PLAINTEXT
[oauth_token] => (snip)
[oauth_version] => 1.0
[overwrite] => 1
[oauth_signature] => (snip)&1d6uqpi59mux2hn
)
That array entry is keyed for Curl, which can takes entries pre-pended
with @, and uses the file data from the indicated file (see
http://php.net/manual/en/function.curl-setopt.php).
My consumer needs to detect that case, and convert it into the proper
arguments for a call to wp_remote_post.
Unfortunately the parameters for wp_remote_post are not well documented.
Reading the source code, it looks like the argument 'stream' could be
something to do with what I want. That appears to stream a file. But
then what about the other parameters that needing posting too? How can I
achieve what Curl is achieving, but using wp_remote_post? (Reading the
whole file into memory is not an option - it could potentially be more
than available memory).
Can anybody give me a hand?
Thank you,
David
--
WordShell - WordPress fast from the CLI - www.wordshell.net
More information about the wp-hackers
mailing list