Uploadify 插件不调用 Java Servlet

2024-03-04

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

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

有上传 servlet 和下一步执行上传earlier:

< form enctype="multipart/form-data" method="post" target="uploadFrame"
action="<%= request.getContextPath() %>/uploadFile?portletId=${portletId}&remoteFolder=${remoteFolder}">...

提供Uploadify插件后,UInow好像:

插件部分(配置):

    <script>
...  
         oScript.text+= "$j('#uploadify').uploadify({";
      oScript.text+= "'uploader' : 'kne-portlets/js/lib/uploadify/scripts/uploadify.swf',";
      oScript.text+= "'script'   : '<%= request.getContextPath() %>/uploadFile?portletId=${portletId}&remoteFolder=<%= decodedString %>',";
      oScript.text+= "'cancelImg': 'kne-portlets/js/lib/uploadify/cancel.png',";
      oScript.text+= "'folder'   : '<%= decodedString %>',";
      oScript.text+= "'queueID'  : 'fileQueue',";
      oScript.text+= "'auto'     : false,";
      oScript.text+= "'multi'    : false,";
      //oScript.text+= "'sizeLimit' : 1000";
      oScript.text+= "});";
      oScript.text+= "});"; 
...   
</script>

这里的“scripts”参数指向后端的Java Servlet

<%= decodedString %>是文件夹路径,其值为\\文件-srv\演示

上传部分:

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

我的错在哪里?

插件配置中的“Script”参数指向后端的 Java Servlet 并且已完成,但 Servlet 未触发。

当“script”参数不正确时出现错误:http://img190.imageshack.us/i/errormm.png/ http://img190.imageshack.us/i/errormm.png/

谢谢您的帮助。


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

  • 外部JS未加载。
  • JS 代码在语法/逻辑上无效。
  • 请求 URL 无效。
  • Servlet 根本没有映射。
  • Servlet 映射错误url-pattern.
  • Servlet 无法启动/初始化。

根据目前提供的信息很难确定根本原因。

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

Update:我试图重现你的问题。

  1. 我下载了jquery.uploadify-v2.1.0(麻省理工学院) http://www.uploadify.com/_files/jquery.uploadify-v2.1.0.zip,提取它并将整个内容放入/WebContent/uploadifyEclipse 中我的(空)playground Web 项目的文件夹。

  2. 我创建了一个/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>
    
  3. 我创建了一个com.example.UploadServlet如下,几乎没有帮助Apache Commons 文件上传 http://commons.apache.org/fileupload(刚刚放置commons-fileupload-1.2.1.jar http://mirrors.kahuki.com/apache/commons/fileupload/binaries/commons-fileupload-1.2.1-bin.zip and commons-io-1.4.jar http://www.alliedquotes.com/mirrors/apache/commons/io/binaries/commons-io-1.4-bin.zip in /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);
            }
        }
    }
    
  4. 我注册了com.example.UploadServlet in 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>
    
  5. 我部署了项目,启动了服务器,去了http://localhost:8080/playground/upload.jsp http://localhost:8080/playground/upload.jsp,从我的下载文件夹中随机选择一个大文件,单击Upload链接,看到上传百分比计数器增长到 100%,我终于在标准输出中看到以下内容:

    
    
    UploadServlet invoked. Here are all uploaded files: 
    Name: glassfish-v3-windows.exe
    Size: 50402555
    Type: application/octet-stream
      

很抱歉,我无法重现您的问题。至少,以上信息应该可以帮助您“重新”开始。希望能帮助到你。

Update:根据评论,过滤器期望它使用相同的会话。好的,你可以通过改变来相当容易地做到这一点

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

to

'<%= request.getContextPath() %>/uploadFile;jsessionid=${pageContext.session.id}?portletId=${portletId}&remoteFolder=<%= decodedString %>',";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Uploadify 插件不调用 Java Servlet 的相关文章

  • jquery .load() 不起作用

    我似乎无法让 jquery 的 load 函数工作 一定是我缺少的一些简单的东西 基本上只是试图将 more html 的片段加载到 index html 中 索引 html
  • 使用 WebDriver 暂时绕过隐式等待

    当使用隐式等待时 正如这里所建议的 https stackoverflow com a 10950905 56285 我仍然有时想要断言即时元素不可见或不存在 换句话说 我know有些元素应该隐藏 并希望我的测试做出这样的断言fast 而不
  • 如何在 javascript/jquery 中进行非阻塞睡眠?

    如何在 javascript jquery 中进行非阻塞睡眠 冒着从评论者那里窃取答案的风险 请使用设置超时 https developer mozilla org en US docs Web API WindowTimers setTi
  • Java 增强型 For-Loop 比传统的更快?

    所以我的理解是 增强的 for 循环应该更慢 因为它们必须使用迭代器 但是我的代码提供了混合结果 是的 我知道循环逻辑占用了循环中花费的大部分时间 对于少量迭代 100 1000 增强的 for 循环在使用和不使用 JIT 的情况下似乎都要
  • 如何在我的 HttpClient 执行器中遵循单一职责原则?

    我在用RestTemplate http docs spring io spring docs current javadoc api org springframework web client RestTemplate html as
  • Java Sound可以用来控制系统音量吗?

    Java 声音优惠FloatControl各种声音线路功能的实例 以及MASTER GAIN http docs oracle com javase 7 docs api javax sound sampled FloatControl T
  • 使android listview布局可滚动

    我有一个 xml 文件 其布局为 ASCII 形式 ImageView TextView List
  • 如何从 Jackson 中的自定义解串器调用默认解串器

    我在杰克逊的自定义解串器有问题 我想访问默认序列化器来填充我要反序列化的对象 在填充之后 我将做一些自定义的事情 但首先我想使用默认的 Jackson 行为反序列化对象 这是我目前拥有的代码 public class UserEventDe
  • 获取 n 元组中的所有 1-k 元组

    当 n 5 且 k 3 时 以下循环将执行此操作 List
  • 如何将空字符串序列化为单个空标签?

    我使用 Simple XML 框架序列化此类 Root public class HowToRenderEmptyTag Element required false private String nullString 我想得到
  • 重定向后 HTML5 CORS 请求在 safari 中失败

    我正在使用 jQuery 制作 CORS 请求来完成 SSO 类型系统 用户登录 WordPress 同时使用钩子也登录 Moodle 我遇到的问题是 在 Safari 中 仅限 safari 7 当初始 POST 请求设置为 mudles
  • 克隆 jQuery 样式?

    我有一个 span called spn1 它有一些来自内联 CSS 文件的样式 我还有一个 span called spn2 我怎样才能克隆spn1 s complete风格融入spn2 I want spn2看起来完全 风格 像spn1
  • 使用 JPA 存储库保留 Spring Batch ItemWriter 的问题

    我对春季批次有疑问ItemWriter它依赖于 JPA 存储库来更新数据 这里是 Component public class MessagesDigestMailerItemWriter implements ItemWriter
  • 在大画布上滚动

    我需要一些帮助来了解滚动绘制到 Android 画布上的项目的基础知识 假设我想创建一个时间线 其中 0 处的时间是可视化的顶部 并且随着时间的增加 时间线继续呈现在上一个点下方 如果我想在 Android 上渲染它 我知道我可以通过重写
  • 如何组织课程、课程包[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 您如何决定包名称应该是什么以及什么类应该放入哪个包中 我正在开发一个项目 在该项目中 我不断添加 删除类 并且不确定我是否需要一个新包 或者应该将其添
  • 正确的单元测试技术

    在使用 TDD 时 我发现自己需要测试一个包含查找值的常量 最终 哈希图 请查看更新中出现这种情况的原因 见下文 private static final Map
  • Jquery 对话框部分视图服务器端验证“保存”按钮单击

    我有一个显示数据的表格 表格的每一行都有编辑按钮 单击编辑按钮时 将出现一个 jquery 对话框 其中包含用于编辑用户信息的表单以及保存和取消按钮 表单只不过是部分视图 按钮是部分视图的一部分
  • 无法验证 serde:org.openx.data.jsonserde.jsonserde

    我编写了这个查询来在配置单元上创建一个表 我的数据最初是 json 格式 所以我已经下载并构建了 serde 并添加了它运行所需的所有 jar 但我收到以下错误 FAILED Execution Error return code 1 fr
  • 尝试接收 UDP 多播时出现空指针异常

    在尝试了几次让简单的 UDP 多播接收器工作后 我感到很困惑 在我自己的代码无法按预期工作后 我尝试了 vertx 文档中发布的确切示例 DatagramSocket socket vertx createDatagramSocket ne
  • jQuery() 与 jQuery.parseHtml() 空格语法错误

    我有一行 javascript 导致 jQuery 中出现语法错误 document find Container replaceWith data find Content 代码本身如果相当无害的话 它所做的只是从 ajax 调用获取响应

随机推荐

  • 有人有使用 berkeley db 和 PHP 的经验吗?

    我必须访问和写入其他应用程序共享的一些伯克利数据库文件 我真的没有找到任何关于在 PHP 中使用它的信息 看起来确实不太受欢迎 有谁有任何链接或资源可供我用来让事情顺利进行吗 Thanks 这不就是dba的功能吗 http php net
  • 如何同时指定div的绝对位置和相对位置

    我是新来的 我想知道如何同时将 div 的位置指定为绝对位置和相对位置 因为 div 可以同时是子级和父级 感谢您的帮助 如果孩子处于绝对位置 任何孙子可以再次绝对定位关系中给孩子 也就是说 孩子不需要position relative为孙
  • DQL 左连接 - sql 示例

    运行良好的 SQL 是 SELECT ro id role rr id role resource re id resource FROM resource re LEFT JOIN role resource rr ON rr resou
  • Google Maps API v3:是否有 setMap() 事件的回调或事件侦听器?

    我正在开发的网站上使用 Google Maps API v3 我的地图下方有一个下拉框 允许用户在地图上显示的不同标记组之间切换 每个标记都使用显示marker setMap 我的问题是地图有时需要很长时间才能显示新标记 尤其是在 IE 中
  • 在 CloudFormation 中为 AWS Load Balancer v2 配置连接耗尽

    这篇博文 https aws amazon com blogs aws elb connection draining remove instances from service with care 这里特别 https s3 amazon
  • 以编程方式获取私有 Vimeo 视频的 URL/嵌入代码

    我们一直是 Vimeo PRO 的长期用户 我们用它来托管在多个网站上显示的视频 这些视频被设置为私有 因此无法在 Vimeo 的公共部分找到它们 到目前为止 每当我们需要显示视频时 我们要么从 Vimeo 获取嵌入代码 要么复制 直接链接
  • 我如何检查我的 sqlite 表中是否有数据?

    编辑 根据下面的答案稍微更改了代码 但仍然无法正常工作 我还添加了一条日志消息来告诉我 getCount 是否返回 gt 0 确实如此 所以我怀疑我的查询可能有问题 或者我对光标的使用 我创建了一个表 我想检查它是否为空 如果它为空 我想运
  • MongoDB:使用 $ 位置运算符进行查询

    我有一个集合 其中的条目如下所示 userid 1 contents tag whatever value 100 tag whatever2 value 110 我希望能够查询该集合并仅返回数组的一部分 与查询匹配的部分 我正在尝试使用
  • 在 WooCommerce 中最后显示缺货产品 - 不包括延期交货

    请注意我的要求与其他类似问题的区别 此代码片段可将缺货商品保留在底部 在 Woocommerce 中最后显示缺货产品 https stackoverflow com questions 25113581 show out of stock
  • 当我将其设置为详细信息时,如何将图像添加到ListView?

    当我将其设置为详细信息时 如何将图像添加到 ListView 例如 ImageList imgList new ImageList imgList Images AddStrip bitmap this listView1 StateIma
  • 使用 OpenCv 检测 PC 上网络摄像头/摄像头的数量

    我正在制作一个运行多个网络摄像头 摄像机的应用程序 我无法检测到 OpenCV 拥有的网络摄像头数量 无法安排一个包含多个子网络摄像头的大显示窗口 有人可以帮我这个吗 我搜索过 openCV willowgarage 但失败了 thanks
  • Python线程传递参数

    我正在尝试将一些参数传递给服务器 但我不知道如何 这是我的代码 HOST PORT socket gethostbyname socket gethostname 31000 self server SocketServer Threadi
  • 通过html链接删除Django中的对象

    我有一个带有 Post 模型的项目 这是基本的帖子 我想在每个帖子页面上创建一个链接 以便能够删除该帖子 具有适当的安全性 关于堆栈溢出有一些问题 但我似乎找不到一个完整的 可行的答案 我使用的是 Django 1 7 当我实现它时不会抛出
  • 使用参数化类型重载方法

    只是想知道是否有一种方法可以使用参数化类型调用重载方法 例如定义以下对象 object Wrap def f x X println x called def f y Y println y called def f a Any print
  • 列出所有 PaperTrail 版本(包括关联)的最有效方法是什么?

    这个问题是关于宝石的纸迹 https github com airblade paper trail对于轨道 当仅关联发生变化时 不会为主模型创建版本记录 因此 列出某个记录 包括其关联 的所有版本的最有效方法是什么 查询应该类似于以下内容
  • 是否有 ruby​​ 一行“return if x”?

    有很多地方需要补充 if this flag return end 可以用 ruby 一行完成吗 有没有红宝石单线 return if x Yes return value if condition 我爱鲁比
  • 无法包含用于客户端幻灯片验证的 js 文件

    我安装了gem client side validations 运行bundle并运行rails g client side validations install 安装没有创建任何 js 文件 因此我创建了它们并将 HitHub 中的代码
  • 为什么 Android FireMonkey 应用程序中的控件不能跨越多列或多行?

    我有一个带有 GridPanelLayout 的 FireMonkey 应用程序 与客户端对齐 它有 6 列和 16 行 控件包括字形 编辑和按钮 TEdit 跨越多列 TButton 跨越多列和行 目前 控件全部与客户端对齐 当我在 Wi
  • 如何使用MAIL_FROM_ADDRESS?

    目前 我正在开发一项功能 要求应用程序向客户 用户发送电子邮件 发送电子邮件已经可以正常工作 但是 我希望隐藏 替换发件人的电子邮件 我以为MAIL FROM ADDRESS in env文件是我所需要的 但它没有给我我所期望的 这是我的
  • Uploadify 插件不调用 Java Servlet

    我刚刚开始使用 Uploadify flash 插件而不是标准 HTML UI 并遇到了下一个问题 当我单击 上传文件 链接时 会显示进度并出现 已完成 状态 但实际上 它没有发生任何事情 Java Servlet 不是从后端调用的 有上传