pagina llamar insertar funcion externo evento ejecutar desde cómo codigo cargar archivo antes javascript html dom google-gears

insertar - llamar funcion javascript html sin evento



Valor establecido dinámicamente de una entrada de archivo (4)

¿Hay alguna manera de establecer el valor de una entrada de archivo ( <input type="file" /> ) o está todo bloqueado por seguridad? Intento utilizar los archivos abiertos de google gears para hacer un simple multi-cargador.

Nota:

La (s) respuesta (s) a continuación reflejan el estado de los navegadores heredados en 2009. Ahora puede establecer el valor del elemento de entrada de archivo dinámicamente / programáticamente usando JavaScript en 2017.

Consulte la respuesta en esta pregunta para obtener detalles y una demostración:
Cómo establecer el valor de entrada de archivo de manera programática (es decir, cuando se arrastran archivos)


Estoy trabajando en una aplicación angular js, y he encontrado un problema similar. Lo que hice fue mostrar la imagen de la base de datos, luego creé un botón para eliminar o mantener la imagen actual. Si el usuario decidió mantener la imagen actual, cambié el atributo ng-submit a otra función que no requiere validación de imagen, y actualicé el registro en el archivo db sin tocar el nombre original de la ruta de la imagen. La función de quitar imagen también cambió el valor del atributo ng-submit a una función que envía el formulario e incluye la validación y carga de la imagen. También un poco de javascript para deslizar la vista para cargar una nueva imagen.


No es posible cambiar dinámicamente el valor de un campo de archivo; de lo contrario, podría establecerlo en "c: / yourfile" y robar archivos con mucha facilidad.

Sin embargo, hay muchas soluciones para un sistema de carga múltiple. Supongo que quieres tener un diálogo abierto de selección múltiple.

Tal vez eche un vistazo a http://www.plupload.com/ - es una solución muy flexible para múltiples cargas de archivos, y admite zonas de colocación, etc.


Terminé haciendo algo así para AngularJS en caso de que alguien tropiece con esta pregunta:

const imageElem = angular.element(''#awardImg''); if (imageElem[0].files[0]) vm.award.imageElem = imageElem; vm.award.image = imageElem[0].files[0];

Y entonces:

if (vm.award.imageElem) $(''#awardImg'').replaceWith(vm.award.imageElem); delete vm.award.imageElem;


Tuve un problema similar, luego intenté escribir esto desde JavaScript y ¡funciona! : referenceToYourInputFile.value = "" ;