Necesito usar PHP porque tengo que tratar y almacenar otros datos también.
Mi problema es que al usar el ejemplo de la documentación de la API, no sé si me realiza la subida correctamente, ya que no me aparece nada en la respuesta, y según lo estoy ejecutando, creo que me debería mostrar a groso modo algo, aunque fuese ilegible, del xml.
Estos son mis archivos:
subir_photo.html
Código HTML:
....... <form action="upload.php" method="post" id="photo-form" enctype="multipart/form-data" data-ajax="false" onSubmit="return FormUpload_Validator(this)"> <div data-role="fieldcontain"> <label for="title">Title:</label> <input type="text" name="title" id="title" value="" /> </div> <div data-role="fieldcontain"> <label for="city">City:</label> <input type="text" name="city" id="city" value="" /> </div> <div data-role="fieldcontain"> <label for="image">Upload Image:</label> <input type="file" name="photo" id="photo" data-theme="b"/> </div> <div data-role="fieldcontain"> <input type="submit" value="Submit Form" data-theme="b" /> </div> </form>
Código PHP:
echo $_POST["title"]; // Valor introducido Title
echo $_POST["city"]; // Valor introducido City
$filename = $_FILES['photo']['tmp_name'];
echo $filename;
$handle = fopen($filename, "r");
$data = fread($handle, filesize($filename));
// $data is file data
$pvars = array('image' => base64_encode($data), 'key' => "xxxxxxxxx");
$timeout = 30;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://api.imgur.com/2/upload.xml');
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
$xml = curl_exec($curl);
curl_close ($curl);
echo $xml;
echo "hola";
TitleCity/tmp/phpNZbbnK
(el echo "hola" tampoco llega a mostrarse)
¿Alguien me puede echar una mano por favor? Llevo todo el día intentando arreglarlo y necesito otros ojos que me ayuden a ver el problema...
Muchas gracias y saludos!!!
PD: He tenido que poner los guiones bajos en el título porque me salía un cartelito diciendo que pusiese un nombre al tema más descriptivo. Lo siento.