Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Graphixx en 2 Septiembre 2014, 18:10 pm



Título: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: Graphixx en 2 Septiembre 2014, 18:10 pm
Tengo un formulario en PHP, y le quiero agregar una sección donde el usuario pueda subir una imagen sin necesidad de recargar el formulario, ni de enviarlo por POST, es posible?, la imagen debe quedar guardada su url en un campo de la tabla mysql, y la imagen como tal en una carpeta del hosting. Tambien debe tener un boton que permita eliminar la imagen actual o subir otra distinta.

Apenas encuentre todo lo posteo por aca.
- Probado: http://www.formget.com/upload-images-using-php-and-jquery-via-form/ (NO SIRVIO)
- Probado: http://smartcoderszone.com/2010/09/dynamic-jquery-multiple-image-upload-with-delete-and-limit-features/ (NO SIRVIO)
- Probando: http://phppot.com/php/php-ajax-image-upload/ (NO SIRVIO)
- Probando: http://www.w3bees.com/2013/08/ajax-image-upload-with-jquery.html (NO SIRVIO)
- Probando: http://www.phpclasses.org/package/2759-PHP-Browse-files-uploaded-without-page-reloading.html (NO SIRVIO)

Ya busque mucho por el foro pero no encuentro nada:
http://foro.elhacker.net/nivel_web/php_upload_security-t277601.0.html
http://foro.elhacker.net/nivel_web/upload_de_imagenes_seguro_php-t361488.0.html
http://foro.elhacker.net/php/como_validar_upload_de_imagenes_correctamente-t290979.0.html
http://foro.elhacker.net/php/sistema_para_subir_imagenes_a_un_servidor_usando_php-t214471.0.html
http://foro.elhacker.net/desarrollo_web/subir_imagen_al_servidor_y_almacenar_la_ruta_en_la_base_de_datos-t387798.0.html
http://foro.elhacker.net/php/subir_imagen_como_en_wordpress-t324578.0.html
http://foro.elhacker.net/bases_de_datos/guardar_imagen_en_base_de_datos_o_en_disco_del_servidor-t230083.0.html
http://foro.elhacker.net/php/guardar_una_imagen_y_su_miniatura-t299826.0.html

EL QUE YO MISMO DESARROLLE:
http://www.4shared.com/rar/RIqTGpcTce/imageupload18.html


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: dantemc en 2 Septiembre 2014, 19:27 pm
Hola, te tocaría tirar de otros métodos:
http://httpredes.tripod.com/met.html

http://php.net/manual/es/features.file-upload.put-method.php

pero no te lo recomendaría...


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: #!drvy en 2 Septiembre 2014, 19:31 pm
¿ Por magia ?

Como quieres subir algo sin POST.. por FTP ? xD Una cosa es no recargar (ajax) y otra cosa es no usar POST.

PD: Temas de PHP van al subforo de PHP.

Saludos


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: EFEX en 2 Septiembre 2014, 19:47 pm
Queres mostrar la imagen antes de subirla?

https://stackoverflow.com/questions/4459379/preview-an-image-before-it-is-uploaded
http://jsfiddle.net/LvsYc/


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: Graphixx en 2 Septiembre 2014, 19:49 pm
¿ Por magia ?

Como quieres subir algo sin POST.. por FTP ? xD Una cosa es no recargar (ajax) y otra cosa es no usar POST.

PD: Temas de PHP van al subforo de PHP.

Saludos

Jejejeje si me refiero a AJAX.


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: MinusFour en 2 Septiembre 2014, 19:54 pm
Si es "subir" imagenes, copiando de otros lugares, puedes hacer AJAX con GET a un script PHP que descargue la imagen de la url con fopen o file_get_contents.


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: Graphixx en 2 Septiembre 2014, 20:51 pm
Me he liado, necesito un codigo que tenga un ejemplo con botones de:
- subir imagen
- eliminar imagen
- modificar imagen

- Probando: http://phppot.com/php/php-ajax-image-upload/
- Probando: http://www.w3bees.com/2013/08/ajax-image-upload-with-jquery.html


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: MinusFour en 2 Septiembre 2014, 21:43 pm
Ambos trabajan con POST. ¿A todo esto, porque no usar POST para subir la imagen?


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: Graphixx en 2 Septiembre 2014, 23:39 pm
Ambos trabajan con POST. ¿A todo esto, porque no usar POST para subir la imagen?

Por que no quiero que se vaya un formulario que tiene como 20 campos vacio, nada mas para que el usuario cargue la imagen, esto es mas o menos lo que necesitaba : http://phppot.com/php/php-ajax-image-upload/ , pero ese no trae la opcion de borrar la imagen con ajax.


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: MinusFour en 3 Septiembre 2014, 01:31 am
A ver pues, no se lo que creas que hace AJAX pero AJAX simplemente puede hacer peticiones asincronas, no hay HTTP AJAX. Hay GET, POST, PUT, DELETE, CONNECT etc y otros 4 metodos que de memoria no me acuerdo cuales son.

Los scripts que has puesto trabajan con POST. Están usando AJAX para enviar la petición, pero la petición usa POST. Lo que tu quieres hacer, es simplemente filtrar los campos vacios. Con AJAX esto es fácil, recorres todos los elementos del formulario y solo envias en data los campos que esten llenos.


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: JorgeEMX en 4 Septiembre 2014, 06:26 am
Usa un formulario aparte. Quizá debajo o antes de tu form principal, usa target para mandarlo a un frame y de ahí ocupa la información como mejor te plazca (con JS claro).

Si quieres usar forzosamente AJAX: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Using_nothing_but_XMLHttpRequest


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: 6666 en 4 Septiembre 2014, 07:28 am
Si por supuesto, esto se hace con javascript, una vez que tienes la imagen cargada en el input de file, lo pasas a base64 y con esa string usas para lo que quieras.

test.htm


Código:
<style>
  .thumb {
    height: 75px;
    border: 1px solid #000;
    margin: 10px 5px 0 0;
  }

</style>

<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>

<script>
  function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object

    // Loop through the FileList and render image files as thumbnails.
    for (var i = 0, f; f = files[i]; i++) {

      // Only process image files.
      if (!f.type.match('image.*')) {
        continue;
      }

      var reader = new FileReader();

      // Closure to capture the file information.
      reader.onload = (function(theFile) {

        return function(e) {
          // Render thumbnail.
          var span = document.createElement('span');
          span.innerHTML = ['<img class="thumb" src="', e.target.result,
                            '" title="', escape(theFile.name), '"/><p><textarea>', e.target.result,'<textarea>'].join('');
          document.getElementById('list').insertBefore(span, null);
        };
      })(f);

      // Read in the image file as a data URL.
      reader.readAsDataURL(f);
    }
  }

  document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>





Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: Graphixx en 4 Septiembre 2014, 22:08 pm
No encontre en internet ni un solo ejemplo de un upload dinamico de fotos en AJAX, asi que dejo el que hice yo...

EL QUE YO MISMO DESARROLLE:
http://www.4shared.com/rar/RIqTGpcTce/imageupload18.html

Conste habia muchas paginas que decian como subirlas , pero no como modificarlas ni borrarlas, eso fue lo que me toco hacer.


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: JorgeEMX en 5 Septiembre 2014, 02:37 am

EL QUE YO MISMO DESARROLLE:

Tu actitud es siempre la misma. Propones un tema como desesperado, después de alguna respuestas y de ponerle peros a todo; regresas a presumir lo que seguramente ya tenías hecho.

Yo sinceramente tomo eso como spam, por no colocarte una etiqueta más despectiva. En fin., propongo que te creas un tema y vayas colocando todas tus creaciones! :D


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: Graphixx en 5 Septiembre 2014, 04:18 am
Tu actitud es siempre la misma. Propones un tema como desesperado, después de alguna respuestas y de ponerle peros a todo; regresas a presumir lo que seguramente ya tenías hecho.

Yo sinceramente tomo eso como spam, por no colocarte una etiqueta más despectiva. En fin., propongo que te creas un tema y vayas colocando todas tus creaciones! :D

No es SPAM  :-( , ojala fueran mis creaciones, a lo mucho son "adaptaciones", no presumo por que de que voy a presumir, si lo que hice lo hice leyendo tutoriales de internet que crearon verdaderos cracks. Perdona si la forma mia de tratar el tema te incomodo, no era mi intencion trollear por aca, de verdad necesitaba con ancias ese ejemplo y no se si es que estaba buscando por los terminos que no eran pero no logre encontrarlo por ningun lado, habia dos polos opuestos en una cara estaban los ejemplos que solo enseñaban como subir las imagenes mediante ajax y nada mas, sin eliminar.... y en la otra cara estaban los gestores de archivos ya demasiado robustos que se salian de las necesidades basicas que buscaba suplir.

Y el ejemplo que puse es el ejemplo sencillo de como SUBIR, ELIMINAR o MODIFICAR una sola imagen por usuario mediante AJAX. Me falta la parte de que si la imagen es demasiado grande el mismo sistema la vuelva thumbnail osea que la reduzca a algo aceptable y elimine la imagen grande y guarde solo la pequeña, esas modificaciones las subo el fin de semana.


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: dantemc en 5 Septiembre 2014, 17:37 pm
(https://imagizer.imageshack.us/v2/655x145q90/661/nTZYyw.png)


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: #!drvy en 5 Septiembre 2014, 17:48 pm
Código
  1. <?php
  2. include("../mysqli.inc.php");
  3. $qr = $_POST['qr'];
  4. $nombreImagen = $_POST['imgNombre'];
  5.  
  6. $conexion=mysqli_connect ($cfg_servidor,$cfg_usuario,$cfg_password,$cfg_basephp1);
  7. $sentencia="update datos_basicos set foto = '' where qr = '".$qr."'";
  8. if(mysqli_query($conexion,$sentencia)){
  9.              echo "<li><img src='imagenes/Sinimagen.jpg' width='180px' height='120px' /></li>";
  10.              echo "<li><input type='file' name='btnAgregar' id='btnAgregar'  onchange='agregar(btnAgregar);' /></li>";
  11.            }
  12.  
  13. $Eliminar = "imagenes/" .$nombreImagen;
  14. $do = unlink($Eliminar);
  15.  
  16. if($do != true){
  17. echo "Se produjo un error al eliminar la imagen" .$nombreImagen. "<br />";
  18. }
  19. ?>

Pfff xD

Saludos


Título: Re: [AYUDA] Script subir imagenes sin hacer POST, sin que el formulario se recargue
Publicado por: Graphixx en 8 Septiembre 2014, 19:39 pm
(https://imagizer.imageshack.us/v2/655x145q90/661/nTZYyw.png)

Esa parte no la he incluido en el ejemplo, por lo que se supone que el codigo que estamos trabajando es solo el de subir, modificar y eliminar las imagenes asincronicamente mediante AJAX, ya lo estoy compilando ya que le he agregado la opcion de que si la imagen es demasiado pesada (mas de 1mb) el sistema la redimenciona a 50KB por lo de que la imagen es nada mas un avatar en el sistema, ahorita en 1 hora lo monto todo.