Foros del Web » Programando para Internet » Javascript »

Validar tamaño archivo antes de enviar formulario

Estas en el tema de Validar tamaño archivo antes de enviar formulario en el foro de Javascript en Foros del Web. Chicos buenos días, me pueden dar una mano En un formulario con campo archivo se puede validar el tamaño de un archivo antes de enviar ...
  #1 (permalink)  
Antiguo 19/03/2013, 09:04
 
Fecha de Ingreso: noviembre-2010
Mensajes: 204
Antigüedad: 13 años, 5 meses
Puntos: 1
Validar tamaño archivo antes de enviar formulario

Chicos buenos días, me pueden dar una mano

En un formulario con campo archivo se puede validar el tamaño de un archivo antes de enviar el formulario
. Actualmente lo valido en php del lado del servidor pero no es lo mas eficiente, lo ideal seria validarlo al seleccionarlo en el formulario.

Gracias por su tiempo

Gracias
  #2 (permalink)  
Antiguo 19/03/2013, 11:49
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 3 meses
Puntos: 36
Respuesta: Validar tamaño archivo antes de enviar formulario

Actualmente con html normal no te permite tener acceso al path de tu archivo, pero con html5 ya tienes un tipo "file" en tu input, entonces con javascript puedes obtener el tamaño del archivo con algo asi:

Código Javascript:
Ver original
  1. var input = document.getElementById('archivo');
  2. var file = input.files[0];
  3. alert(file.size);

Código HTML:
Ver original
  1. <input type='file' id='archivo'>

Pero no todos los exploradores aun suportan este tipo de html5, pero el hacer la calidacion en el servidor del tamano no es mucho trabajo, puedes validar el tamano antes de hacer cualquier otra accion, lo que es tardado es la subida,
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #3 (permalink)  
Antiguo 19/03/2013, 11:51
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Validar tamaño archivo antes de enviar formulario

Con la Api File de HTML5

Ejemplos
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>Tamaño archivo</title>
  5. </head>
  6. <form action="#">
  7. <input type="file" id="archivos" name="archivos[]" multiple />
  8. <output id="lista"></output>
  9. </form>
  10.   function archivoSeleccionado(evt) {
  11.   if(window.File && window.FileReader && window.FileList && window.Blob){
  12.    var archivos = evt.target.files;
  13.     var salida = [];
  14.     for (var i = 0, f; f = archivos[i]; i++) {
  15.       salida.push('<li>',f.size, ' bytes','</li>');
  16.     }
  17.     document.getElementById('lista').innerHTML = '<ul>' + salida.join('') + '</ul>';
  18.  
  19. }else{
  20. // solo IE, no funciona con archivos multiples
  21.     var Fs = new ActiveXObject("Scripting.FileSystemObject");
  22.     var ruta = document.getElementById('archivos').value;
  23.     var archivo = Fs.getFile(ruta);
  24.     var size = archivo.size;
  25. document.getElementById('lista').innerHTML = '<br \/>' +size + " bytes";
  26. }
  27.  
  28. }
  29. document.getElementById('archivos').addEventListener('change', archivoSeleccionado, false);
  30. </body>
  31. </html>

Con jQuery
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>Tamaño archivo</title>
  5.     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  6.     <script type="text/javascript">
  7. //<![CDATA[
  8.    
  9. $(document).ready(function(){
  10. $('#subir').bind('change', function() {
  11.    
  12. if(window.File && window.FileReader && window.FileList && window.Blob){
  13. alert(this.files[0].size + ' bytes');
  14. }else{
  15. // IE
  16.    var Fs = new ActiveXObject("Scripting.FileSystemObject");
  17.    var ruta = document.upload.file.value;
  18.    var archivo = Fs.getFile(ruta);
  19.    var size = archivo.size;
  20.    alert(size + " bytes");
  21. }
  22.  
  23. });
  24. });
  25.  
  26. //]]>
  27. </head>
  28. <form name="upload">
  29. <input type="file" name="file" id="subir">
  30. </form>
  31. </body>
  32. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: formulario, php, tamaño
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 04:45.