Foros del Web » Programando para Internet » PHP »

Leer multiples imagenes desde php

Estas en el tema de Leer multiples imagenes desde php en el foro de PHP en Foros del Web. Encontré el siguiente código para generar imágenes en miniatura a medida que se va seleccionando un archivo, y funciona muy bien tanto para 1 imagen ...
  #1 (permalink)  
Antiguo 02/08/2017, 19:16
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 16 años
Puntos: 1
Leer multiples imagenes desde php

Encontré el siguiente código para generar imágenes en miniatura a medida que se va seleccionando un archivo, y funciona muy bien tanto para 1 imagen como para multiples imagenes. Como leo estos datos desde PHP para guardar los nombres en una base de datos?

https://developer.mozilla.org/en-US/.../readAsDataURL

Código HTML:
Ver original
  1. <input id="browse" type="file" onchange="previewFiles()" multiple>
  2. <div id="preview"></div>

Código Javascript:
Ver original
  1. function previewFiles() {
  2.  
  3.   var preview = document.querySelector('#preview');
  4.   var files   = document.querySelector('input[type=file]').files;
  5.  
  6.   function readAndPreview(file) {
  7.  
  8.     // Make sure `file.name` matches our extensions criteria
  9.     if ( /\.(jpe?g|png|gif)$/i.test(file.name) ) {
  10.       var reader = new FileReader();
  11.  
  12.       reader.addEventListener("load", function () {
  13.         var image = new Image();
  14.         image.height = 100;
  15.         image.title = file.name;
  16.         image.src = this.result;
  17.         preview.appendChild( image );
  18.       }, false);
  19.  
  20.       reader.readAsDataURL(file);
  21.     }
  22.  
  23.   }
  24.  
  25.   if (files) {
  26.     [].forEach.call(files, readAndPreview);
  27.   }
  28.  
  29. }

Cuando inspecciono las imagenes a medida que las subo veo lo siguiente: https://ibb.co/bULPZk
  #2 (permalink)  
Antiguo 03/08/2017, 12:02
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Leer multiples imagenes desde php

Necesitas enviar las imágenes al servidor mediante una petición asíncrona (AJAX):

Código Javascript:
Ver original
  1. var ajax = new XMLHttpRequest(),
  2.     data = new FormData();
  3.  
  4. for (var i in files){
  5.     data.append(i, files[i]);
  6. }
  7.  
  8. ajax.open("POST", "guardar.php");
  9. ajax.addEventListener("load", function(){
  10.     this.status == 200 && console.log("Las imágenes han sido guardadas");
  11. }, false);
  12. ajax.send(data);

De esta manera, podrás recibir al conjunto de archivos de imagen en el archivo PHP que designes, pudiendo en él procesar su almacenamiento en el servidor (archivo físico) y en la base de datos (nombre del archivo).

  #3 (permalink)  
Antiguo 03/08/2017, 13:02
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 16 años
Puntos: 1
Respuesta: Leer multiples imagenes desde php

Cita:
Iniciado por Alexis88 Ver Mensaje
Necesitas enviar las imágenes al servidor mediante una petición asíncrona (AJAX):

Código Javascript:
Ver original
  1. var ajax = new XMLHttpRequest(),
  2.     data = new FormData();
  3.  
  4. for (var i in files){
  5.     data.append(i, files[i]);
  6. }
  7.  
  8. ajax.open("POST", "guardar.php");
  9. ajax.addEventListener("load", function(){
  10.     this.status == 200 && console.log("Las imágenes han sido guardadas");
  11. }, false);
  12. ajax.send(data);

De esta manera, podrás recibir al conjunto de archivos de imagen en el archivo PHP que designes, pudiendo en él procesar su almacenamiento en el servidor (archivo físico) y en la base de datos (nombre del archivo).

Eso ya lo se hacer con esta libreria muy completa
http://plugins.krajee.com/file-input/demo

No hay forma de que al hacer clic en el boton se pueda leer esos archivos con el array $_FILES?, sin tener que recurrir a Ajax?
Código PHP:
Ver original
  1. echo '<pre>';
  2. print_r($_FILES);
  3. echo '</pre>';
  #4 (permalink)  
Antiguo 03/08/2017, 14:17
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Leer multiples imagenes desde php

No, por una muy sencilla razón: JavaScript trabaja del lado del cliente; PHP, del lado del servidor.

Solo como consejo acerca de eficiencia y rendimiento: para tareas tan sencillas que requieren de unas cuantas líneas de código, es preferible escribirlas que importar las miles de líneas de código que constituyen a una librería.

  #5 (permalink)  
Antiguo 05/08/2017, 10:10
 
Fecha de Ingreso: agosto-2011
Mensajes: 87
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Leer multiples imagenes desde php

Fernarey, tuve una duda algo parecida a la tuya.

Debes enviar las imagenes al servidor, y luego de validar que sea imagen, bla, bla, bla retornas desde el servidor los datos de las imagenes subidas, url, nombre, titulo, lo que quieras y mediante javascript construir y adicionar la imagen

Código:
var image = new Image(); // creas <img>
        image.height = 100; // Altura que deseas la imagen
        image.title = file.name; // nombre de imagen retornado desde servidor
        image.src = this.result; // url de imagen retornado desde servidor
        preview.appendChild( image ); //agregas la imagen recientemente creada al div #preview
si no quieres hacer eso, tendras que hacer un buen trabajo con las expresiones regulares, que encuentre todas las etiquetas <img> y obtener los nombres de las imagenes, el detalle es que no las tendras alojadas en tu servidor :V
__________________
No le pare bola a la vida, que la vida no le para bolas a uno!

Etiquetas: imagenes, multiples, nombre, select, url
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 16:18.