JAVA中使用jquery文件上传插件分块上传文件

2024-02-03

尝试使用blueimp JQuery文件上传插件用于上传大文件(大于 1 GB)。发现使用maxChunkSize配置允许从客户端分块上传文件。我们可以使用服务器获取块大小和文件名Content-Range & Content-Disposition标头。

我的服务器是Weblogic并在 a 中编写服务器端代码Servlet.

这是我的问题:

  1. 服务器端:如何知道请求是否是最后一个块?
  2. 服务器端如何将所有接收到的块数据写入单个文件?
  3. 由于每个块将作为单独的请求发送,因此如何识别与同一文件相关的分块请求?

检查 github 上插件的 wiki - 它有一个关于分块文件上传的部分。

来自wiki https://github.com/blueimp/jQuery-File-Upload/wiki/Chunked-file-uploads:

这个例子PHP 上传处理程序 https://github.com/blueimp/jQuery-File-Upload/blob/master/server/php/UploadHandler.php支持分块上传 盒子。

为了支持分块上传,上传处理程序使用内容范围标头 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16,由插件为每个传输 块。

检查上面链接的示例 PHP 代码。

服务器端:如何知道请求是否是最后一个块?

Each Content-Range请求标头将包含该请求中包含的文件的字节范围以及文件的总字节数。因此,您可以根据字节总数检查范围的结束值,以确定请求是否包含最后一个块。

检查中给出的示例this http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16W3C 网站上的部分。

服务器端如何将所有接收到的块数据写入单个文件?

您可以将内存中的所有块收集到一个数组中,然后将它们一次性写入文件 - 但这对于较大的文件来说可能效率低下。 Java 的 IO API 提供了通过提供初始偏移量写入文件部分的方法。查看this https://stackoverflow.com/questions/181408/问题。

由于每个块将作为单独的请求发送,因此如何识别与同一文件相关的分块请求?

检查是否有Content-Range每个请求中的标头 - 如果请求具有该标头,那么它是许多块上传请求之一。使用标头的值,您可以确定该请求中包含文件的哪个部分/部分。

另外,Content-Disposition请求中的标头将包含文件名,您可以使用该文件名链接同一文件的各个请求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA中使用jquery文件上传插件分块上传文件 的相关文章

随机推荐

  • 如何修复此分类报告警告?

    我创建了一个多类分类模型 一切都很顺利 验证准确度为 84 但当我打印分类报告时 我收到了此警告 UndefinedMetricWarning Precision and F score are ill defined and being
  • 检测 Android 上的 USB 网络共享

    有没有什么方法可以 以编程方式 在您的活动 应用程序中知道用户已在其手机上启用 USB 网络共享 您还可以使用反射来访问用于设置 USB 网络共享的隐藏功能 这是我的代码 ConnectivityManager cm Connectivit
  • Mutate_if 语法帮助 - 如何在谓词条件下添加函数参数

    寻找一些有关如何使用 dplyr 的 mutate if 语句来检查是否需要将列转换为因子变量的建议 这个函数说明了我正在尝试做的事情 问题是 当我想为函数中的 max value 参数传递一些内容时 正确的语法是什么 不起作用 我尝试更改
  • Android - 无法动态重新创建 Canvas 视图

    我试图显示在上一个屏幕中绘制的画布图像的网格视图 我有一组在第一个屏幕中绘制的不同视图 这些视图会发生变化 这些画布将根据用户的操作重新绘制 我有 5 个心形画布视图 并且我对每颗心使用不同的视图 这意味着我没有使用同一类来绘制五颗心 而是
  • Java中多项式乘以常量

    我在将多项式乘以常数 双精度 时遇到一些问题 当只有一个系数时它会起作用 但当存在多个系数时 它会给出 ArrayIndexOutOfBounds 错误并指向 setCoefficient 方法 有什么帮助吗 谢谢 public class
  • SwiftUI:呈现工作表时防止视图刷新

    我注意到添加时 SwiftUI 完全刷新了视图sheet修饰符 假设我有显示随机数的视图 我希望这个值是独立的 并且不与工作表逻辑相关 每次打开 关闭工作表时不会改变 但是每次提交 取消表格时文本都会发生变化 它应该这样工作吗 我的要点是错
  • 查询至少有 1 个关联,但返回全部

    我创建了这条记录 您可以看到它有 2 个标签 tag1 和 tag2 id d87de1d9 b048 4867 92fb a84dca59c87e name Test Name tags id fa0ca8fd eff4 4e58 8bb
  • 如何获取泛型类型参数?

    Simply public static class MyClass
  • 在 XCode 中启用代码视图的抗锯齿功能

    有没有办法让 XCode 在启用抗锯齿的情况下在编辑器中渲染文本 我在首选项对话框中看不到任何可以做到这一点的内容 XCode 文本已经是抗锯齿的 检查并确保字体大小大于以下指定的大小 系统偏好设置 gt 外观 如果大于 您可以在命令行中尝
  • 如何确保JVM中类只有一个实例?

    我正在开发一种设计模式 我想确保这里只是Java虚拟机中类的一个实例 通过一个点汇集对某些资源的所有请求 但我不知道这是否可能 我只能想出一种方法来计算类的实例并在创建第一个实例后销毁所有实例 这是正确的做法吗 如果没有的话还有其他办法吗
  • 如何在Android TimePicker中设置间隔30分钟的开始时间和结束时间?

    我正在 android 中的 DatePicker 和 TimePicker 工作 我正在从服务器获取开始时间和时间 我可以使用以下方式以编程方式设置最大日期和最小日期这个链接 https stackoverflow com questio
  • 如何防止 contenteditable 输入事件并在 vue 中设置模型值?

    我想在 contenteditable div 上使用 vue 创建简单的所见即所得编辑器 我想将编辑器内容存储到 json 对象中 我想使用状态 模型概念 我将在编辑器模板中执行类似的操作 div div
  • 在 Maven2 中,构建 WAR 和 EAR 以将该 WAR 包含在单个 POM 中的最简单方法是什么?

    情况非常简单 我有一个 Java Web 应用程序 我正在将其转换为使用 Maven 构建 目前 该应用程序使用 Ant 构建到单个 WAR 文件中 然后使用非常简单的 application xml 将其捆绑到 EAR 中 maven w
  • 如何根据布尔属性对对象数组进行排序?

    我在表中列出了用户列表 活跃用户应排列在非活跃用户之上 我正在尝试做这个sort使用洛达什sortBy功能 但不成功 这是如何userArray looks const userArray I need to show users whic
  • 更改 Rails 5 中的默认本地主机端口

    我正在使用 Rails 5 它与默认的 puma 服务器一起使用并监听 localhost 3000 我希望它侦听新端口 例如 192 168 0 0 3000 有人可以帮忙吗 谢谢 Rails 5 自带了 puma 配置在config p
  • 各功能键码快捷键

    我正在编写一个小脚本来捕获按键事件并轻松地在其上绑定函数 但我现在被困住了 问题是 如果我初始化多个 事件处理程序 它会覆盖第一次初始化的参数 几千个字不比几行代码说得更多 所以 这就是我到目前为止所做的 var keyCodes a 65
  • Spring Boot应用程序未启动嵌入式tomcat

    我是 Spring boot 应用程序的新手 我有一个任务来创建公共 CRUD 存储库 该存储库应由其余控制器处理 我刚开始举一些例子 但我的应用程序没有启动嵌入式tomcat 我的其余控制器 URI 也没有映射 这是maven模块项目 所
  • 类“test_coredataAppDelegate”的重复接口声明

    这段代码突然引发了两个错误 类 test coredataAppDelegate 的重复接口声明 重新定义 struct test coredataAppDelegate import
  • 具有 IP 范围的主机

    我的主机没有稳定的主机名 但具有预定义的 IP 范围 如何设置 Ansible 库存文件的 IP 范围 我正在尝试设置这样的东西 test ini database db ansible ssh host 1 1 1 20 25 ansib
  • JAVA中使用jquery文件上传插件分块上传文件

    尝试使用blueimp JQuery文件上传插件用于上传大文件 大于 1 GB 发现使用maxChunkSize配置允许从客户端分块上传文件 我们可以使用服务器获取块大小和文件名Content Range Content Dispositi