Foros del Web » Programando para Internet » Javascript »

Subir imagen a imgur sin recargar pagina

Estas en el tema de Subir imagen a imgur sin recargar pagina en el foro de Javascript en Foros del Web. Hola todos estoy tratando de hacer un subidor de imagenes estilo: http://stackoverflow.com/ Talvez los habran visto a la hora de comentar aparece la opcion de ...
  #1 (permalink)  
Antiguo 05/10/2011, 19:03
Avatar de ColdFusion  
Fecha de Ingreso: octubre-2008
Ubicación: Tocoa, Colon Honduras C.A.
Mensajes: 419
Antigüedad: 15 años, 7 meses
Puntos: 9
Subir imagen a imgur sin recargar pagina

Hola todos estoy tratando de hacer un subidor de imagenes estilo: http://stackoverflow.com/

Talvez los habran visto a la hora de comentar aparece la opcion de subir imagen a imgur.com.

Bueno, en si, trate de copiar la forma en que ellos lo hacen.

Observen el siguiente codigo:
Código HTML:
Ver original
  1. <form name="formu" method="post" action="subir.php" target="coco" enctype="multipart/form-data">
  2. <input name="accion" value="subirImagen" type="hidden" />
  3. <input type="file" name="img"/>
  4. <input type="submit" value="Enviar"/>
  5. </form>
  6. <iframe name="coco" id="coco" src='about:blank'></iframe>
En esta parte lo que hago es ejecutar el formulario en el iframe, es decir que lo que el php devuelva se mostrara en el iframa.

Codigo de subir.php:
Código PHP:
Ver original
  1. $imagen=$_FILES['img']['tmp_name'];
  2.     $handle = fopen($imagen, "r");
  3.     $data = fread($handle, filesize($archivo));
  4.  
  5.     $pvars   = array('image' => base64_encode($data), 'key' => 'MiApiKeyDeIMGUR');
  6.     $timeout = 30;
  7.     $curl    = curl_init();
  8.  
  9.     curl_setopt($curl, CURLOPT_URL, 'http://api.imgur.com/2/upload.xml');
  10.     curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
  11.     curl_setopt($curl, CURLOPT_POST, 1);
  12.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  13.     curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
  14.  
  15.     $imagen_final = curl_exec($curl);
  16.     curl_close ($curl);
  17.    
  18.     $imagen_final = @simplexml_load_string($imagen_final);
  19.    
  20.     foreach ($imagen_final->links as $imgur_img_path)
  21.     echo  $imgur_img_path->large_thumbnail;
Esto me devulve la direccion de la imagen que acabo de subir a imgur.com la cual es mostrada en el iframe

Hasta aqui todo esta bien.. pero si se pueden fijar los de http://stackoverflow.com/ hacen lo mismo y al finalizar de subirse la imagen se auto agrega a un textarea... ellos usan estas lineas de codigo pero no se para que son.

Este codigo va en la misma parte del formulario
Código Javascript:
Ver original
  1. $("form").submit(function(){
  2. window.closeDialog=H;
  3. window.displayUploadError=function(S){
  4. alert(S);
  5. };
  6.  
  7. )};

y este codigo va en el area del subir.php
Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script type='text/javascript'>
  4.   var error = null;
  5.   var result = 'http://i.stack.imgur.com/MbtQd.jpg';
  6.   if (error == null) {
  7.      window.parent.closeDialog(result);
  8.   } else {
  9.      window.parent.displayUploadError(error);
  10.   }
  11. </script>
  12. </head>
  13. <body></body>
  14. </html>

para tener una mejor idea de lo que busco seria bueno visitar el area de comentarios de http://stackoverflow.com/

Alguien podria ayudarme!, GRACIAS!
  #2 (permalink)  
Antiguo 05/10/2011, 22:38
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 9 meses
Puntos: 2237
Respuesta: Subir imagen a imgur sin recargar pagina

Bueno, lo unico que puedo decirte es que necesitas Javascript para manipular la informacion entre ventanas (y/o marcos) del navegador y eso nada tiene que ver con PHP.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: html, imagenes, imgur
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:32.