小编典典
这可能有很多可能的原因(另请参阅我发表的评论)。
未加载外部JS。
JS代码在语法/逻辑上无效。
请求网址无效。
Servlet根本没有映射。
Servlet被映射为错误url-pattern。
Servlet无法启动/初始化。
很难根据现有信息确定根本原因。
正如您提到的那样,您没有在FireBug的“网络”选项卡中看到任何请求被触发,我认为JS代码在语法/逻辑上完全无效。右键单击页面,然后双重验证生成/打印的JS代码。
更新: 我试图重现您的问题。
我下载了jquery.uploadify-v2.1.0(MIT),将其解压缩并将所有内容/WebContent/uploadify放入Eclipse中我的(空)操场Web项目的文件夹中。
我创建了一个/WebContent/upload.jsp文件,如下所示:
Uploadify test$(document).ready(function() {
$('#uploadify').uploadify({
'uploader': 'uploadify/uploadify.swf',
'script': 'uploadServlet',
'folder': '/uploads',
'cancelImg': 'uploadify/cancel.png'
});
$('#upload').click(function() {
$('#uploadify').uploadifyUpload();
return false;
});
});
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 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,如下所示:
uploadServlet
com.example.UploadServlet
uploadServlet
/uploadServlet
我部署了项目,启动了服务器,访问了http:// localhost:8080 / playground / upload.jsp,从我的下载文件夹中选择了一个随机的大文件,单击Upload链接,然后看到上传百分比计数器增长到100%,我终于在标准输出中看到以下内容:UploadServlet被调用。这是所有上传的文件:
名称:glassfish-v3-windows.exe
尺寸:50402555
类型:应用程序/八位字节流
很抱歉,我无法重现您的问题。至少,以上信息应该可以帮助您“重新开始”。希望能帮助到你。
更新: 根据评论,过滤器期望它正在使用相同的会话。好的,您可以通过更改
'/uploadFile?portletId=${portletId}&remoteFolder=',";
至
'/uploadFile;jsessionid=${pageContext.session.id}?portletId=${portletId}&remoteFolder=',";
2020-06-08