【问题标题】:Alternatives to Java Applet running with NPAPI in Chrome在 Chrome 中使用 NPAPI 运行的 Java Applet 的替代品
【发布时间】:2015-10-27 15:07:24
【问题描述】:

我们有一个 Applet,用于在客户端计算机上压缩文件并将内容流式传输回我们的服务器。由于 Chrome 不再支持 NPAPI 插件,我们已更新到较新版本 Chrome 的客户不再能够使用我们的 Applet。 我想我有几个选择:

  1. 以某种方式使现有 Applet 与 Chrome 一起工作(可能使用 JNLP?)或其他方法
  2. 完全寻找替代技术

解决方案必须能够接收文件夹、子文件夹和文件名的列表。如果可能,它必须能够压缩这些文件,然后将它们上传到服务器。我愿意接受任何建议。

【问题讨论】:

    标签: java google-chrome google-chrome-extension applet npapi


    【解决方案1】:

    你可以

    • 使用File API 读取文件,可能让用户通过drag and drop 将它们添加到您的界面(比无聊的<input type="file"> 更方便的选择机制:-))。

    • 使用像 JSZip 这样的库在 JavaScript 中压缩它们(尽管如果你的服务器启用了 gzip,我不确定你这样做有什么收获;不过我还没有深入研究它)

    • 通过 HTTP POST(可能是多个帖子)或使用XMLHttpRequest2web sockets 将它们发送到服务器。

    当然,您的另一个选择是继续使用 Java,让用户使用 Firefox 而不是 Chrome。请注意,Mozilla 也在寻求摆脱 NPAPI 并摆脱对 Java 的支持。大约 20 个月前 they weren't:

    除了将它们设置为“要求激活”之外,没有计划在 firefox 中放弃对 java 或其他 npapi 插件的支持:https://blog.mozilla.org/security/2014/02/28/update-on-plugin-activation/

    ....但是now:

    Mozilla 打算在 2016 年底之前取消对 Firefox 中大多数 NPAPI 插件的支持。Firefox 几年前就开始了这个过程......

    (在第一句话中将谎言置于“没有计划”)

    ...目前使用 Silverlight 或 Java 等插件的网站和发布商应加快向 Web 技术的过渡。

    【讨论】:

    • 除了 HTTP Post 之外,我已经查看了其中的每一个。问题是用户不知道文件所在的根文件夹。我们在他们的 CD 上阅读了一个文件,该文件为我们提供了文件列表(以 JSON 格式)。然后我们必须压缩这些文件并将它们流式传输到服务器。我一直无法找到一种方法来获取 File API 或 JSZip 以递归地使用 JSON 来寻址文件夹和文件。
    • @Dylan:出于显而易见的原因,你不能。浏览器上的 JavaScript 代码只能访问用户特别有权访问的文件,为此,用户必须知道文件的路径,以便他们可以选择它/将其拖到页面上/任何。我们很可能会进步到用户可以在未来某个时候向单个页面授予更多权限,但就目前而言,这是非常轻柔的。
    • @Dylan:我应该在上面说。或者使用火狐。 (现在我有了。:-))
    • Mozilla 一年半前说过;最近,他们表示他们计划在 2016 年底之前放弃对 NPAPI 的支持(Flash 除外)。blog.mozilla.org/futurereleases/2015/10/08/…
    • 您可以在Chrome中添加文件夹输入
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    相关资源
    最近更新 更多