【发布时间】:2011-03-31 10:34:27
【问题描述】:
我有一个场景,我必须在单击按钮时上传一个 zip 文件,我不能为此使用表单,所以我需要通过使用 document.location.href 或通过 AJAX 调用 servlet 来处理它,上传文件后,我需要在服务器上提取它。所以有人可以告诉我有什么可能的方法。
【问题讨论】:
标签: javascript ajax servlets file-upload
我有一个场景,我必须在单击按钮时上传一个 zip 文件,我不能为此使用表单,所以我需要通过使用 document.location.href 或通过 AJAX 调用 servlet 来处理它,上传文件后,我需要在服务器上提取它。所以有人可以告诉我有什么可能的方法。
【问题讨论】:
标签: javascript ajax servlets file-upload
Javascript 无法访问本地磁盘文件系统,也无法更改<input type="file"> 字段,因此它在此处停止。这是一个非常好的安全限制,否则会是一个巨大的安全漏洞(否则可以创建一个带有预填充文件字段的不可见表单,例如c:/passwords.txt,并在加载期间提交它窗口)。
要么让用户选择要上传的文件,要么在网页中嵌入一个小客户端应用程序(例如 Applet、Silverlight 等)。它只需要一些 $$$ 就可以对其进行数字签名,这样您就可以让它在客户端上运行,而客户端无需面对安全警告对话,因为它试图不经意地访问本地磁盘文件系统。
对于文件上传提取部分,我可以热情推荐Apache Commons FileUpload。另请参阅 this answer 的代码示例。
【讨论】: