在不上载的情况下访问Web应用程序中的文件内容

时间:2010-06-14 03:35:32

标签: javascript web-applications file-upload html5

据我所知,除非首先上传到服务器,然后重新下载到用户,否则无法在Web应用程序中访问用户计算机上的文件内容,除非使用某种插件。 (Flash等)理想情况下,用户可以将文件直接上传到localstorage,然后脚本就有机会处理/显示/验证/过滤而无需用户等待上传。

即将推出的网络标准中是否有任何功能,例如html5可以实现这一功能?如果没有,为什么没有努力使这成为可能,我怎么能解决它而不会遇到插件?

编辑: 不要以为我想让JavaScript在没有任何用户干预的情况下访问硬盘上的任意文件。 我们已经拥有能够提示用户输入文件并上传文件,我只希望能够提示用户将文件加载到浏览器的内存中。 我只希望HTML5支持你已经可以用Flash和Java小程序做的事情。

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

你可以在HTML 5(或6,7,......)中做些什么取决于具有竞争议程的不同供应商群体认为新的HTML版本应该或不应该做什么......它是{{3} }。

为您创建访问计算机资源(例如文件)的权限的网页会产生一个非常大的安全漏洞(您希望我的网页能够读取您的电子邮件和家庭银行文件吗?)

委员会不太可能同意对产生安全风险的功能进行标准化,因为一个设备/平台上只有一个浏览器需要很难实施该标准才能向黑客开放designed by committee

个别供应商(制作插件的人)不必让其他公司就某项功能达成一致意见。他们只是实现它,用户可以决定是否足够信任它来安装它。微软首次尝试这是Pandora's Box

答案 2 :(得分:1)

就像劳尔和埃里克指出的那样,涉及到一个重要的信任问题,要求人们提供他们不知道访问硬盘的代码,这不会使您的网站受欢迎。

很长一段时间,您可能会在插件或浏览器特定功能/插件之间进行选择。

那就是说,只要充分利用这种情况,你就可以做很酷的事情。我曾多次使用的一种方法是在网页上显示一个不可见的插件(在我的例子中是Applet),但完全通过JavaScript控制它,为Web应用程序提供了非常“自然”的外观和感觉。

另一种方法是某种渐进式增强 - 为安装了所需插件并选择使用它的用户提供增强的体验。我已经在http://www.pdfcombine.com这样的网站上进行了实验 - 没有安装Java插件的用户可以通过将PDF文件上传到服务器并下载合并文件来合并PDF文件,而使用Java插件的用户则是如果选择在Applet本地完成所有操作。