Tamaño de archivos

Saludos nuevamente
Hace un par de días hice una pregunta sobre conocer el tamaño de los archivos con JavaScript antes de subirlos al servidor, para la cual me enviaste una solución.
Ahora me doy cuenta de que funciona bien con IE pero no funciona ni con FireFox ni Netscape. El código es:
function prueba()
{
img = document.createElement("IMG");
img.src = document.getElementById("fichero").value;
img.id = "fotoFinal";
img.style.visibility = "hidden";
document.body.appendChild(img);
setTimeout("alert(Math.round((document.getElementById('fotoFinal').fileSize / 1024)*Math.pow(10,2)) / Math.pow(10,2)); ",500);
}
Tal vez hay algún problema con estos navegadores porque solamente me regresan un 'undefined' o es un erro mio.
Gracias nuevamente

1 Respuesta

Respuesta
1
Claro, el problema es básicamente el tema de accesibilidad de los atributos sobre los elementos de un documento (dateLastModified, fileSize, etc..) son interepretados por casi todos los navegadores, en Opera he probado y si que funciona, e incluso en Modzilla, pero como dices, en Firefox estas propiedades devuelven undefined... cosas de stándares entre navegadores me temo.
Básicamente por eso no es bueno usar lenguajes de cara al cliente, ya que cada navegador es un mundo y tiene su propia implementación, y pocas veces, funcionan en todos un código.
Este tipo de operación que deseas hacer, la podrías hacer en menos líneas, con toda compatbilidad y de una manera más exacta con PHP. Te lo recomiendo que te lo instales en tu servidor.
No olvides puntuar mis respuestas :)
Excelente tu respuesta, pero esperaba realizar algo dentro de la misma página que posee el formulario, a manera de Ajax.
Ya que con PHP sería una página para el formulario, una página de comprobación y otra página con la respuesta, lo cual, en caso de exceder el limite debería llenar nuevamente el formulario
El Ajax es un lenguaje asíncrono, que trabaja a la vista de un usuario normal por "detrás del navegador", pero para los desarrolladores es una llamada a un documento que nos devuelve una determinada información que podemos reescribir en el propio documento sin actualizar la página.
El mundo del desarrollo web es sobre todo imaginación en el que podamos desarrollar truquitos para que el usuario no sienta que la página está continuamente cambiando, sino que es algo dinámico.
Por ejemplo, si tienes PHP instalado, en tu formulario, donde tienes el campo de escoger fichero, ese trocito del formulario lo puedes meter en un iframe, y subir dicho fichero a tu servidor, y, examinarlo, mientras que el resto del formulario seguirá estando en su sitio sin recargar.
En este PHP que llamas cuando subes el fichero, puedes comprobar muchas más cosas que con Javascript no podrías, como formato del fichero, tamaño del ficheros, atributos del fichero y muchas cosas, y, al estar el Iframe alojado dentro de un documento padre, donde tenemos el formulario tienes facilidad de comunicar datos del Iframe al documento padre.
Lo que hay que tener claro es que el objeto que hace toda la gracia del envío en forma asíncrona de datos: XMLHTTPRequest no soporta "encytype" como "multiparte" (sólo texto plano), es decir, que con Ajax no se pueden subir ficheros.
No olvides puntuar mis respuestas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas