这可能有很多可能的原因(另请参阅我发表的评论)。
- 未加载外部JS。
- JS代码在语法/逻辑上无效。
- 请求网址无效。
- Servlet根本没有映射。
- Servlet被映射为错误
url-pattern
。 - Servlet无法启动/初始化。
很难根据现有信息确定根本原因。
正如您提到的那样,您没有在FireBug的“网络”选项卡中看到任何请求被触发,我认为JS代码在语法/逻辑上完全无效。右键单击页面,然后双重验证生成/打印的JS代码。
更新: 我试图重现您的问题。
我下载了jquery.uploadify-v2.1.0(MIT),将其解压缩并将所有内容
/WebContent/uploadify
放入Eclipse中我的(空)操场Web项目的文件夹中。我创建了一个
/WebContent/upload.jsp
文件,如下所示:
<!DOCTYPE html> <html lang="en"> <head> <title>Uploadify test</title> <script src="uploadify/jquery-1.3.2.min.js"></script> <script src="uploadify/swfobject.js"></script> <script src="uploadify/jquery.uploadify.v2.1.0.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#uploadify').uploadify({ 'uploader': 'uploadify/uploadify.swf', 'script': 'uploadServlet', 'folder': '/uploads', 'cancelImg': 'uploadify/cancel.png' }); $('#upload').click(function() { $('#uploadify').uploadifyUpload(); return false; }); }); </script> </head> <body> <input id="uploadify" type="file"> <a id="upload" href="#">Upload</a> </body> </html>- 我创建了一个
com.example.UploadServlet
与帮助不大如下Apache的百科全书文件上传(刚放置commons-fileupload-1.2.1.jar
并commons-io-1.4.jar
于/WEB-INF/lib
):
package com.example; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("UploadServlet invoked. Here are all uploaded files: "); try { List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request); for (FileItem item : items) { if (!item.isFormField()) { System.out.println("Name: " + item.getName()); System.out.println("Size: " + item.getSize()); System.out.println("Type: " + item.getContentType()); } } } catch (Exception e) { throw new ServletException(e); } } }- 我注册
com.example.UploadServlet
的web.xml
,如下所示:
<servlet> <servlet-name>uploadServlet</servlet-name> <servlet-class>com.example.UploadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>uploadServlet</servlet-name> <url-pattern>/uploadServlet</url-pattern> </servlet-mapping>
- 我部署了项目,启动了服务器,访问了http:// localhost:8080 / playground / upload.jsp,从我的下载文件夹中选择了一个随机的大文件,单击
Upload
链接,然后看到上传百分比计数器增长到100%,我终于在标准输出中看到以下内容:UploadServlet被调用。这是所有上传的文件:
名称:glassfish-v3-windows.exe
尺寸:50402555
类型:应用程序/八位字节流
很抱歉,我无法重现您的问题。至少,以上信息应该可以帮助您“重新开始”。希望能帮助到你。
更新: 根据评论,过滤器期望它正在使用相同的会话。好的,您可以通过更改
'<%= request.getContextPath() %>/uploadFile?portletId=${portletId}&remoteFolder=<%= depredString %>',";至
'<%= request.getContextPath() %>/uploadFile;jsessionid=${pageContext.session.id}?portletId=${portletId}&remoteFolder=<%= depredString %>',";


