Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/07/2021, 12:21
Avatar de fedefrankk
fedefrankk
 
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Pregunta Respuesta: Como hacer que no se repitan los mensajes

Hola.!! gracias por contestar, he visto que jquery no lo están usando, yo saque un codigo de este foro, ( ahora te lo comparto), del lado de javascript, pude validar que se subieran 2 archivos, copie tu código y me saltaron varios errores
( no es por critica, al contrario, no se mucho y quiero aprender,) los errorres son los siguiente.:

Warning: strip_tags() expects at most 2 parameters, 3 given in C:\xampp\htdocs\SUBIR ARCHIVO_AJAX\01\upload.php on line 15

Warning: move_uploaded_file(): The second argument to copy() function cannot be a directory in C:\xampp\htdocs\SUBIR ARCHIVO_AJAX\01\upload.php on line 15

Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\php2D75.tmp' to 'images/' in C:\xampp\htdocs\SUBIR ARCHIVO_AJAX\01\upload.php on line 15

Warning: strip_tags() expects at most 2 parameters, 3 given in C:\xampp\htdocs\SUBIR ARCHIVO_AJAX\01\upload.php on line 15

Warning: move_uploaded_file(): The second argument to copy() function cannot be a directory in C:\xampp\htdocs\SUBIR ARCHIVO_AJAX\01\upload.php on line 15

Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\php2D85.tmp' to 'images/' in C:\xampp\htdocs\SUBIR ARCHIVO_AJAX\01\upload.php on line 15



dejo el código javascript.:

Código Javascript:
Ver original
  1. (function(){
  2.     var button=document.getElementById('btnSubmit')
  3.    
  4.     var input = document.getElementById('images'),
  5.         formdata = false;
  6.    
  7.     function mostrarImagenSubida(source){
  8.         var list = document.getElementById('lista-imagenes'),
  9.             li   = document.createElement('li'),
  10.             img  = document.createElement('img');
  11.         img.src = source;
  12.         li.appendChild(img);
  13.         list.appendChild(li);
  14.     }
  15.    
  16.     //Revisamos si el navegador soporta el objeto FormData
  17.     if(window.FormData){
  18.         formdata = new FormData();
  19. //        document.getElementById('btnSubmit').style.display = 'none';
  20.     }
  21.    
  22.     if(input.addEventListener){
  23.         input.addEventListener('change', function(evt){
  24.             var i = 0, len = input.files.length, img, reader, file;
  25.             if (len > 2) {
  26.                 alert('Solo puedes seleccionar 2 imágenes');
  27.                 input.value = '';
  28.                 return false;
  29.             }
  30.             //Si hay varias imágenes, las obtenemos una a una
  31.             for( ; i < len; i++){
  32.                 file = input.files[i];
  33. //                console.log(file);
  34.                 //Una pequeña validación para subir imágenes
  35.                 if(!!file.type.match(/image.*/)){
  36.                     //Si el navegador soporta el objeto FileReader
  37.                     if(window.FileReader){
  38.                         reader = new FileReader();
  39.                         //Llamamos a este evento cuando la lectura del archivo es completa
  40.                         //Después agregamos la imagen en una lista
  41.                         reader.onloadend = function(e){
  42.                             mostrarImagenSubida(e.target.result);
  43.                         };
  44.                         //Comienza a leer el archivo
  45.                         //Cuando termina el evento onloadend es llamado
  46.                         reader.readAsDataURL(file);
  47.                     }
  48.                 }
  49.             }
  50.         }, false);
  51.     }
  52.    
  53.     //Aplicamos la subida de imágenes al evento change del input file
  54.     if(button.addEventListener){
  55.         button.addEventListener('click', function(evt){
  56.             var i = 0, len = input.files.length, img, reader, file;
  57.            
  58.             document.getElementById('response').innerHTML = 'Subiendo...';
  59.            
  60.             //Si hay varias imágenes, las obtenemos una a una
  61.             for( ; i < len; i++){
  62.                 file = input.files[i];
  63. //                console.log(file);
  64.                 //Una pequeña validación para subir imágenes
  65.                 if(!!file.type.match(/image.*/)){
  66.                     //Si el navegador soporta el objeto FileReader
  67. //                    if(window.FileReader){
  68. //                        reader = new FileReader();
  69. //                        //Llamamos a este evento cuando la lectura del archivo es completa
  70. //                        //Después agregamos la imagen en una lista
  71. //                        reader.onloadend = function(e){
  72. //                            mostrarImagenSubida(e.target.result);
  73. //                        };
  74. //                        //Comienza a leer el archivo
  75. //                        //Cuando termina el evento onloadend es llamado
  76. //                        reader.readAsDataURL(file);
  77. //                    }
  78.                    
  79. //                    Si existe una instancia de FormData
  80.                     if(formdata)
  81.                         //Usamos el método append, cuyos parámetros son:
  82.                             //name : El nombre del campo
  83.                             //value: El valor del campo (puede ser de tipo Blob, File e incluso string)
  84.                         formdata.append('images[]', file);
  85.                 }
  86.             }
  87.            
  88.             //Por último hacemos uso del método proporcionado por jQuery para hacer la petición ajax
  89.             //Como datos a enviar, el objeto FormData que contiene la información de las imágenes
  90.             if(formdata){
  91.                 $.ajax({
  92.                    url : 'upload.php',
  93.                    type : 'POST',
  94.                    data : formdata,
  95.                    processData : false,
  96.                    contentType : false,
  97.                    success : function(res){
  98.                        document.getElementById('response').innerHTML = res;
  99.                    }                
  100.                 });
  101.             }
  102.         });
  103.     }
  104. }());

y en php:

Código PHP:
Ver original
  1. <?php
  2.  
  3.     $i = 0;
  4.     foreach ($_FILES['images']['error'] as $key => $error) {
  5.         if ($error == UPLOAD_ERR_OK) {
  6.             $name = $_FILES['images']['name'][$key];
  7.             $cuantas = count($_FILES['images']['name']);
  8.             if ($cuantas >= 3) {
  9.                 echo "<h2>Hastta 2 artchivos ".(int)$cuantas."</h2>";
  10.                 break;
  11.             } else {
  12.                 $i++;
  13.                 move_uploaded_file(
  14.                     $_FILES['images']['tmp_name'][$key],
  15.                     'images/' .strip_tags($name, ENT_QUOTES, 'UTF-8')
  16.                 );
  17.                 if ($i == 3) {
  18.                    echo "<h2>Archivos correctamente subidos ".(int)$cuantas."</h2>";
  19.                   break;
  20.             }
  21.         }
  22.     }
  23. }
  24.    
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  ?>

No se que estoy haciendo mal..
Cualquier ayuda se agradece.!
Saludos y gracias por su tiempo.