Reputation: 5238
Maybe I am going crazy, but this isn't working. I am trying to upload a image in the connect folder to a tumblr account. Here's my code:
<?php
// Authorization info
$tumblr_email = '***';
$tumblr_password = '***';
// Data for new record
$post_type = 'photo';
$post_title = 'The post title';
$post_body = 'This is the body of the post.';
// Prepare POST request
$request_data = http_build_query(
array(
'email' => $tumblr_email,
'password' => $tumblr_password,
'type' => $post_type,
'data' => 'connect/19.jpg',
'generator' => 'testing'
)
);
// Send the POST request (with cURL)
$c = curl_init('http://www.tumblr.com/api/write');
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $request_data);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($c);
$status = curl_getinfo($c, CURLINFO_HTTP_CODE);
curl_close($c);
// Check for success
if ($status == 201) {
echo "Success! The new post ID is $result.\n";
} else if ($status == 403) {
echo 'Bad email or password';
} else {
echo "Error ($status): $result\n";
}
?>
<img src="connect/19.jpg" />
I am getting this error: 400
Upvotes: 3
Views: 2385
Reputation: 11
Just Add The below code:
// Prepare POST request
$request_data = http_build_query(
array(
'email' => $tumblr_email,
'password' => $tumblr_password,
'type' => $post_type,
'caption' => $post_title,
'data' => file_get_contents('http://27.media.tumblr.com/tumblr_lywood4slh1qz7t0xo1_250.jpg'),
'generator' => 'testing'
)
);
Upvotes: 1
Reputation: 5247
It seems to me like that you are sending a path to an image, not the image itself.
How about replacing
'data' => 'connect/19.jpg',with
'data' => file_get_contents('connect/19.jpg'),
Upvotes: 2