J'ai environ 300 images que je veux télécharger sur mon nouveau compte Tumblr, car mon ancien site wordpress a été piraté et je ne souhaite plus utiliser wordpress.Téléchargement de plusieurs images via Tumblr API
J'ai téléchargé une image par jour pendant 300 jours, et j'aimerais pouvoir prendre ces images et les télécharger sur mon site tumblr en utilisant l'API.
Les images sont actuellement locales, stockées dans/images /. Ils ont tous la date à laquelle ils ont été téléchargés comme les dix premiers caractères du nom de fichier, (01-01-2009-filename.png) et je suis allé aussi envoyer ce paramètre de date. Je veux être en mesure de voir la progression du script en produisant les réponses de l'API à mon error_log. Voici ce que j'ai jusqu'ici, basé sur la page tumblr api.
// Authorization info
$tumblr_email = '[email protected]';
$tumblr_password = 'password';
// Tumblr script parameters
$source_directory = "images/";
// For each file, assign the file to a pointer
Voici la première pierre d'achoppement. Comment puis-je obtenir toutes les images dans le répertoire et les parcourir? Une fois que j'ai une boucle for ou while mis en place, je suppose que c'est la prochaine étape
$post_data = fopen(dir(__FILE__) . $source_directory . $current_image, 'r');
$post_date = substr($current_image, 0, 10);
// Data for new record
$post_type = 'photo';
// Prepare POST request
$request_data = http_build_query(
array(
'email' => $tumblr_email,
'password' => $tumblr_password,
'type' => $post_type,
'data' => $post_data,
'date' => $post_date,
'generator' => 'Multi-file uploader'
)
);
// 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);
// Output response to error_log
error_log($result);
Alors, je suis coincé sur la façon d'utiliser PHP pour lire un répertoire de fichiers, boucle à travers chacun des fichiers, et faire choses au nom/avec le fichier lui-même. J'ai également besoin de savoir comment définir le paramètre de données, comme dans le cas du multi-part/formdata. Je ne sais rien sur cURL.
Ce code ne fonctionne plus. Je recommanderais https://gist.github.com/velocityzen/1242662 – westondeboer