2010-02-03 17 views
6

¿Hay alguna otra manera en que pueda simplemente verificar el tamaño de un archivo antes de cargarlo? El requisito es si el archivo excedió el límite, el formulario no debe enviarse. Si no es así, tengo que hacer la carga normal usando el formulario y no tengo que cargar exactamente el archivo al servidor usando Flash.Otras formas de verificar el tamaño del archivo antes de cargarlo

Respuesta

2

¿Hay alguna otra forma en que pueda simplemente verificar el tamaño de un archivo antes de cargarlo?

No en JavaScript, el tamaño del archivo es not in the DOM.

1

cuando una instancia de SWFUpload, hay dos parámetros que necesita para aprobar: FILE_SIZE_LIMIT y file_queue_error_handler:

new SWFUpload({ 
    file_size_limit: "10 MB", 
    file_queue_error_handler: queueErrorHandler, 
    [...] 
}) 

y luego:

function queueErrorHandler(file, errorCode) { 
    if (errorCode == SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT) { 
     alert("File exceeds the 10MB limit!"); 
    } 
} 

este comprueba si el tamaño del archivo es dentro de los límites antes de comenzar la carga

+2

Simplemente no quiero cargar el archivo usando Flash. Quiero decir, solo quiero verificar el tamaño del archivo usando SWFUpload y luego subir el archivo usando el proceso normal. ¿Parece posible? – jean27

+0

También descubrí que no puedo manipular el valor del archivo tipo de entrada así que supongo que lo que realmente quiero es imposible. – jean27

+0

sí, usar SWFUpload solo para comprobar que el tamaño del archivo funcionaría si pudiera establecer el valor de propiedad de la entrada de archivo normal –

1

Comprobación del tamaño del archivo a través del control SWFUpload es posible. Simplemente coloque el control SWFUpload fuera de las etiquetas de formulario web. Dígale al usuario que haga clic en el botón SWFUpload y señale su archivo de carga. Use javascript para determinar el tamaño del archivo, luego utilice esta información como mejor le parezca, como llenar una función de validación. Luego, su formulario principal deberá solicitar al usuario que apunte a su archivo de carga nuevamente, y es este campo el que realizará la carga real del archivo. Cuando se envía el formulario, el control SWFUpload se ignorará por completo, ya que no forma parte del formulario principal.

+0

¿Puedes dar un ejemplo? Yo también quiero solo el tamaño del archivo y nada más, tengo mi propia barra de progreso y mi propia forma de cargar un archivo a mi servidor. Básicamente, solo quiero recuperar el tamaño de archivo que IE no me puede dar todavía. ¿Gracias? – PathOfNeo

+0

Creo que está implícito en la pregunta del OP que el usuario no debería tener que navegar/seleccionar el archivo dos veces. –

Cuestiones relacionadas