Динамически заданное значение ввода файла

Есть ли способ установить значение ввода файла ( ) или это все заблокировано для обеспечения безопасности? Я пытаюсь использовать openFiles google gears для создания простого многопользовательского режима.

Заметка:

Ниже в ответах отражено состояние устаревших браузеров в 2009 году. Теперь вы можете реально установить значение элемента ввода файла динамически / программно с помощью JavaScript в 2017 году.

См. Ответ в этом вопросе для деталей, а также демонстрационную версию:
Как установить значение ввода файла программно (т. Е. При перетаскивании файлов)?

Невозможно динамически изменять значение поля файла, иначе вы можете установить его в «c: \ yourfile» и легко украсть файлы.

Однако существует много решений для многозадачной системы. Я предполагаю, что вы хотите иметь диалоговое окно с несколькими выборами.

Возможно, посмотрите на http://www.plupload.com/ – это очень гибкое решение для загрузки нескольких файлов и поддерживает зоны сброса и т. Д.

Я работаю над угловым js-приложением, а также с аналогичной проблемой. То, что я сделал, это отобразить изображение из db, а затем создать кнопку для удаления или сохранения текущего изображения. Если пользователь решил сохранить текущий образ, я изменил атрибут ng-submit на другую функцию, которая не требует проверки изображения, и обновила запись в db, не касаясь исходного пути пути к изображению. Функция удаления изображения также изменила значение атрибута ng-submit обратно на функцию, которая отправляет форму и включает в себя проверку и загрузку изображений. Также немного javascript, чтобы вставить в представление, чтобы загрузить новое изображение.

У меня была схожая проблема, затем я попытался написать это с JavaScript, и это работает! : referenceToYourInputFile.value = "" ;

Я в конечном итоге сделал что-то подобное для AngularJS, если кто-то споткнется по этому вопросу:

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

А потом:

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