2011-04-12 8 views
7

Tengo este input del tipo "file", y quiero cambiar su lista files. Ejemplo:cómo cambiar la lista de archivos de la entrada del archivo

<input type = "file" id = "fileinput" /> 
<script type = "text/javascript> 
    document.getElementById("fileinput").files = [10]; 
</script> 

El problema es que la lista del elemento fileinputfiles no está establecido. ¿Cómo lo hago?

+0

No puede. Se lee solo por obvias razones de seguridad. –

+0

Ya veo, ¿entonces no puedo permitir que cargue múltiples archivos con múltiples clics? – dave

+0

@dave HTML5 permite una selección múltiple de archivos pero aún no puede decidir cuáles serán esos archivos. –

Respuesta

14

Por razones de seguridad, los navegadores evitan que javascript cambie los archivos que se cargarán: solo el usuario puede seleccionar archivos a través de la interfaz de usuario. Esto es para evitar que una secuencia de comandos malvada cargue /etc/passwd, por ejemplo, sin que el usuario lo sepa.

La única excepción es que al llamar "restablecer" en el formulario se borrará el archivo o la lista de archivos, pero nunca se puede agregar a un programa.

+4

Entonces, ¿cómo agregaría más archivos a la lista de archivos de la entrada del archivo al hacer clic varias veces? – dave

+0

@odrm no puede agregar archivos locales * reales * a la lista de archivos, pero no hay nada de malo en agregar 'Archivo' o' Blob'. Podría imaginar un usuario que haría eso y sería útil. –

+0

@ Tomáš Zato No creo que pudieras, porque ¿cómo el navegador sabría el origen del archivo, si se creó mediante programación o se lo robaron al usuario? – atas

-1

Lo que quiere es usar el atributo multiple en el elemento input. De esta forma, en navegadores más nuevos, el usuario podrá seleccionar múltiples archivos para cargar.

Cuestiones relacionadas