我有一个场景,我必须在按钮上单击上传一个zip文件,我不能使用表单,所以我需要通过使用document.location.href或通过AJAX调用servlet来处理它,上传文件后,我需要在服务器上提取它。所以有人可以告诉我将采取哪种方法。
答案 0 :(得分:1)
Javascript无法访问本地磁盘文件系统,也无法更改<input type="file">
字段,因此它会在此处停止。这是一个非常好的安全限制,否则它将是一个巨大的安全漏洞(否则将能够创建一个带有预填充文件字段的隐形表单,例如c:/passwords.txt
,并提交它在窗口上载时。)
要么让用户选择要上传的文件,要么在网页中嵌入一个小客户端应用程序(例如Applet,Silverlight等)。它只需要一些$$$就可以对它们进行数字签名,这样你就可以让它在客户端上运行而不需要客户端需要面对安全警告对话,因为它试图不经常访问本地磁盘文件系统。
对于文件上传提取部分,我可以热烈推荐Apache Commons FileUpload。另请参阅this answer代码示例。