有没有办法设置文件输入的值(<input type="file" />
)还是全部被阻止以确保安全性?我正在尝试使用谷歌齿轮的openFiles来制作一个简单的多上传器。
注意:
下面的答案反映了2009年旧版浏览器的状态。现在,您可以在2017年使用JavaScript动态/编程地设置文件输入元素的值。
有关详细信息和演示,请参阅此问题的答案:
How to set file input value programatically (i.e.: when drag-dropping files)?
答案 0 :(得分:66)
无法动态更改文件字段的值,否则您可以将其设置为“c:\ yourfile”并轻松窃取文件。
然而,多上传系统有很多解决方案。我猜你想要一个多选择的打开对话框。
或许看一下http://www.plupload.com/ - 这是一个非常灵活的多文件上传解决方案,并且支持drop zone e.t.c。
答案 1 :(得分:2)
我正在开发一个角度js应用程序,并且遇到了类似的问题。我所做的是显示数据库中的图像,然后创建一个按钮来删除或保留当前图像。如果用户决定保留当前图像,我将ng-submit属性更改为另一个不需要图像验证的功能,并更新数据库中的记录而不触及原始图像路径名。删除图像功能还将ng-submit属性值更改回提交表单的功能,并包括图像验证和上传。还有一些javascript可以滑入视图以上传新图像。
答案 2 :(得分:0)
我有类似的问题,然后我尝试用JavaScript编写它,它的工作原理! :referenceToYourInputFile.value = "" ;
答案 3 :(得分:0)
我最终为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;