Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
上传插件不';不要调用Javaservlet_Java_Jquery_Jsp_Servlets_Uploadify - Fatal编程技术网

上传插件不';不要调用Javaservlet

上传插件不';不要调用Javaservlet,java,jquery,jsp,servlets,uploadify,Java,Jquery,Jsp,Servlets,Uploadify,我刚开始使用Uploadify flash插件,而不是标准的HTML UI。 遇到了下一个问题: 当我单击“上载文件”链接时,会显示进度并显示“已完成”状态,但实际上,这并没有发生任何事情,Java Servlet不会从后端调用。 前面有上传servlet和下一步执行的上传: < form enctype="multipart/form-data" method="post" target="uploadFrame" action="<%= request.getContextPat

我刚开始使用Uploadify flash插件,而不是标准的HTML UI。
遇到了下一个问题:

当我单击“上载文件”链接时,会显示进度并显示“已完成”状态,但实际上,这并没有发生任何事情,Java Servlet不会从后端调用。

前面有上传servlet和下一步执行的上传:

< form enctype="multipart/form-data" method="post" target="uploadFrame"
action="<%= request.getContextPath() %>/uploadFile?portletId=${portletId}&remoteFolder=${remoteFolder}">...
。。。
提供Uploadify插件后,UI现在看起来像:

插件部分(配置):


...  
text+=“$j('#uploadify')。uploadify({”;
text+=“'uploader':'kneportlets/js/lib/uploadify/scripts/uploadify.swf'”;
text+=“'script':'/uploadFile?portletId=${portletId}&remoteFolder=',”;
text+=“'cancelImg':'kne-portlets/js/lib/uploadify/cancel.png'”;
oScript.text+=“‘文件夹’:”“”;
text+=“'queueID':'fileQueue',”;
oScript.text+=“'auto':false”“;
text+=“'multi':false”“;
//oScript.text+=“'sizeLimit':1000”;
oScript.text+=“});”;
oScript.text+=“});”;
...   
此处的“scripts”参数指向后端的Javaservlet

是文件夹路径,其值为\\file srv\demo

上传部分:

<input type="file" name="uploadify" id="uploadify" />
<a href="javascript:$j('#uploadify').uploadifyUpload();">Upload Files</a>

我的错在哪里

插件配置中的“Script”参数指向后端的JavaServlet,它已经完成,但Servlet并没有被触发

“脚本”参数不正确时出错:


感谢您的帮助。

这可能有很多原因(另请参见我发布的评论)

  • 未加载外部JS
  • JS代码在语法/逻辑上无效
  • 请求URL无效
  • Servlet根本没有映射
  • Servlet映射到错误的
    url模式
  • Servlet无法启动/init
根据已知的信息很难确定根本原因

正如您提到的,在FireBug的“Net”选项卡中没有看到任何请求被激发,我认为JS代码在语法/逻辑上是无效的。右键单击页面并双重验证生成/打印的JS代码

更新:我试图重现您的问题

  • 我下载、提取了它,并将全部内容放在Eclipse中我的(空的)游乐场web项目的
    /WebContent/uploadify
    文件夹中

  • 我创建了一个
    /WebContent/upload.jsp
    文件,如下所示:

    
    上传测试
    $(文档).ready(函数(){
    $('#uploadify')。uploadify({
    'uploader':'uploadify/uploadify.swf',
    “脚本”:“uploadServlet”,
    '文件夹':'/uploads',
    'cancelImg':'uploadify/cancel.png'
    });
    $(“#上载”)。单击(函数(){
    $('#uploadify')。uploadifyUpload();
    返回false;
    });
    });
    
  • 我创建了一个
    com.example.UploadServlet
    ,如下所示,几乎没有任何帮助(只是放在
    /WEB-INF/lib
    中):

    package.com.example;
    导入java.io.IOException;
    导入java.util.List;
    导入javax.servlet.ServletException;
    导入javax.servlet.http.HttpServlet;
    导入javax.servlet.http.HttpServletRequest;
    导入javax.servlet.http.HttpServletResponse;
    导入org.apache.commons.fileupload.FileItem;
    导入org.apache.commons.fileupload.disk.DiskFileItemFactory;
    导入org.apache.commons.fileupload.servlet.ServletFileUpload;
    公共类UploadServlet扩展了HttpServlet{
    受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)
    抛出ServletException、IOException
    {
    System.out.println(“UploadServlet已调用。这里是所有上载的文件:”;
    试一试{
    列表项=新建ServletFileUpload(新建DiskFileItemFactory()).parseRequest(请求);
    用于(文件项:项){
    如果(!item.isFormField()){
    System.out.println(“Name:+item.getName());
    System.out.println(“Size:+item.getSize());
    System.out.println(“类型:”+item.getContentType());
    }
    }
    }捕获(例外e){
    抛出新的ServletException(e);
    }
    }
    }
    
  • 我在
    web.xml
    中注册了
    com.example.UploadServlet
    ,如下所示:

    
    上传servlet
    com.example.UploadServlet
    上传servlet
    /上传servlet
    
  • 我部署了项目,启动了服务器,转到,从我的下载文件夹中选择了一个随机的大文件,单击了
    上传
    链接,看到上传百分比计数器增长到100%,我终于在标准输出中看到了以下内容:

    UploadServlet invoked. Here are all uploaded files: Name: glassfish-v3-windows.exe Size: 50402555 Type: application/octet-stream 已调用UploadServlet。以下是所有上传的文件: 名称:glassfish-v3-windows.exe 尺寸:50402555 类型:应用程序/八位字节流
  • 很抱歉,我不能重现你的问题。至少,以上信息应该能帮助你“新鲜”地开始。希望能有帮助

    更新:根据评论,筛选器希望它正在使用相同的会话。好的,你可以通过改变

    '<%= request.getContextPath() %>/uploadFile?portletId=${portletId}&remoteFolder=<%= decodedString %>',";
    
    “/uploadFile?portletId=${portletId}&remoteFolder=',”;
    

    '/uploadFile;jsessionid=${pageContext.session.id}?portletId=${portletId}&remoteFolder=',“;
    
    我在uploadify 2.1.4中遇到了完全相同的问题。我花了足够长的时间来研究这个问题,发现嵌套URI路径(即/folder1/folder2/fol)似乎有问题
    '<%= request.getContextPath() %>/uploadFile?portletId=${portletId}&remoteFolder=<%= decodedString %>',";
    
    '<%= request.getContextPath() %>/uploadFile;jsessionid=${pageContext.session.id}?portletId=${portletId}&remoteFolder=<%= decodedString %>',";