我正在尝试基于ExtJS创建一个Web应用程序,我正在处理应用程序的文件上传区域。
我希望用户能够通过复制和粘贴文件来上传文件 - 不仅仅是复制和粘贴文件的内容,还包括文件本身。例如,在Windows中,您可以在选择文件时从“编辑”菜单中选择“复制”或“剪切”,然后选择“粘贴”以后复制或移动文件 - 我希望用户能够上传文件通过在浏览器中选择粘贴,在粘贴步骤中访问我的应用程序。
我已经尝试过HTML5的拖放式API,但我们不想使用它 - 我们希望用户能够复制/剪切和粘贴文件以上传文件(只要它们是小于20兆字节)。如果用户将路径复制到他们的文件并直接粘贴到页面,告诉我们在哪里找到该文件,那也可以。
有人可以建议这样做吗?
答案 0 :(得分:6)
问题是,您无法使用javascript访问客户端文件系统。有这个新的Filesystem API,但这只允许您创建一个虚拟沙盒文件系统。我有同样的问题,想了一会儿,想出了以下的想法。
<强>闪存强>
编写一个访问文件系统的Flash桥,让javascript通过swliveconnect
问题:Flash也没有文件系统访问权限。
Java applet
与Flash相同,再次使用LiveConnect
在我看来这可行,但我没有尝试,因为我的目标是在chromebook上获取文件系统访问权限。并且chromeOS不支持Java(至少没有一些黑客攻击)
<强>的ActiveX 强>
我也找到了一些解决方案。我放弃了applet部分,所以我也没试过。
正如Jared Farrish所说,当你复制文件时,操作系统只会保存剪贴板中文件的路径。然后,如果您在webapp上收到粘贴事件,只需从剪贴板中取出该字符串并将其转发到您的文件桥。
答案 1 :(得分:-1)
我已经看到DropBox.com允许这样做(在Chrome中 - 似乎在IE中不起作用)。我没有专门剪切和粘贴,而是将文件从本地文件夹拖到一个Dropbox页面,然后上传文件。所以,这并没有直接回答你的问题,但也许你可以看看它们是如何在他们的代码中完成的。