从浏览器自动上传文件
毕竟我已阅读了这个主题,我知道没有办法从浏览器自动上传文件而没有某种“提升的权限”。从浏览器自动上传文件
但是,提升的权限是我拥有的东西,因为应用程序在Intranet上运行,并且用户当前可以访问ActiveX控件,从而可以使用COM执行一些文档扫描。然后,需要上传保存在文件系统上的扫描文档。
现在,唯一的浏览器要求是IE7 +兼容性。但对于IE8,将值设置为<input type="file" ... />
的唯一方法是手动点击“浏览”按钮。
即使将网站添加到受信任的站点并且ActiveX代码的完全访问被启用,是否真的没有办法为输入表单字段设置值?
这似乎也适用于Flash和Silverlight,安全策略使得无需用户手动选择文件就无法上传文件。 Silverlight可能可以在OOB模式下实现,但如果用户每次都必须单击以启用浏览器模式,那么这种方式太具有中断性。
ActiveX和Java小程序可能可以做到这一点。如果使用<input type="file" ... />
不是一个选项,是否有任何轻量级(可能是免费/开放源代码)的ActiveX控件可以处理从文件系统上传?
更新
我没有深入比较研究所有选项回到那里,和它变成了它的安全模型的模式,这使得它不可能做到从浏览器自动上传文件而无需用户交互。这意味着使用必须手动进行上传文件或确认一些ActiveX控件或类似的插件来完成这项工作。如果您设法找到一种上传方式,而无需使用提升权限的特殊插件,您可能会发现一个安全漏洞,该漏洞很快就会解决。然而,这是Web浏览器技术设计的工作方式。
正如Jesse指出的,第三方ActiveX控件存在信任和许可问题。
由于安全原因,Flash,Silverlight和Java等RIA不允许这样做,并且Silverlight OOB可信应用程序在技术上可行,但听起来并不理想。因为你基本上是在寻找一个能够在网络安全模型中挖出一个洞的组件,所以我怀疑你会发现很多现成的组件(如果你这么做的话,我会成为这样的组件)从安全的角度来看他们是可疑的)。
我建议为此编写自己的ActiveX控件,但一定要考虑安全隐患。例如,您可能希望确保此控件只能由公司网络上的受信任网站使用 - 这有时称为“网站锁定”。
下面是编写安全ActiveX控件的好页面:http://msdn.microsoft.com/en-us/library/bb250471(VS.85).aspx