动态设置文件输入的值

问题描述:

有没有方法可以设置文件输入的值(<input type="file" />)还是全部被安全阻止?我正在尝试使用谷歌齿轮的openFiles来制作一个简单的多上传器。动态设置文件输入的值

注:

答案(S)下面反映的2009年旧版浏览器现在你居然能在2017年

设置文件输入元素的值动态/编程使用JavaScript状态

见这个问题的详细信息,答案以及演示:
How to set file input value programatically (i.e.: when drag-dropping files)?

+1

我敢肯定,你是对的,文件输入字段是只读的。 – 2009-06-19 10:03:13

+3

我在这里做了一个完整的引用和最新的(2013年12月)回答:[记住和重新输入文件输入](http://*.com/a/20537822/588079) – GitaarLAB 2013-12-16 03:25:09

+1

重新打开。 62 + 62 upvotes(更不用说+15书签)意味着比某人的某些奇怪的意见更多 – Green 2017-07-03 21:10:40

这是不可能的DYNA可以更改文件字段的值,否则可以将其设置为“c:\ yourfile”并非常容易地窃取文件。

但是,对于多上传系统有很多解决方案。我猜你想要有一个多选择的开放式对话框。

也许看看http://www.plupload.com/ - 这是一个非常灵活的解决方案,以多个文件上传,并支持拖放区e.t.c.

我有类似的问题,然后我试着从JavaScript写这个,它的工作原理! :referenceToYourInputFile.value = "" ;

我正在研究一个角度js应用程序,并且需要解决类似的问题。我所做的是从数据库中显示图像,然后创建一个按钮来删除或保留当前图像。如果用户决定保留当前图像,我将ng-submit属性更改为另一个不需要图像验证的功能,并更新了数据库中的记录,而无需接触原始图像路径名称。删除图像功能还将ng-submit属性值更改回提交表单并包含图像验证和上传的功能。还有一点javascript可以将视图上传到新视图中。

我落得这样做的情况下,这样的事情对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;