更改 BlobBuilder 中的文件名以作为 XHR 上的 FormData 传递

2023-12-06

我目前正在尝试将 ArrayBuffer 上传到服务器(我无法更改),该服务器需要我以多部分/表单数据格式上传的文件。服务器从Content-Disposition部分的filename将被保存并在Content-type提供文件时将使用的 MIME 类型。目前,我已成功上传文件:

var xhr = new XMLHttpRequest();
var fdata = new FormData();
var bb;

if (WebKitBlobBuilder) {
    bb = new WebKitBlobBuilder();
} else if (MozBlobBuilder) {
    bb = new MozBlobBuilder();
} else if (BlobBuilder) {
    bb = new BlobBuilder();
}

bb.append(obj.array);

fdata.append('file', bb.getBlob("application/octet-stream"));

xhr.open("POST", url, true);
xhr.send(fdata);

但标头是按照浏览器喜欢的方式发送的,例如在 Chrome 上:

Content-Disposition: form-data; name="file"; filename="blob"
Content-Type: application/octet-stream;

我考虑过使用 FileWriter API 将其保存到临时文件,然后上传,但这是不对的。

回答时,请考虑:

  • 服务器无法修改,我也不愿意选择其他服务器提供商。
  • 它必须至少在 Firefox 和 Chrome 上运行(我的应用程序已经仅限于这两种浏览器)。

我自己解决了这个问题,感谢 Chromium 问题让我找到了 w3c 标准草案的答案XMLHttp请求。基本上我应该改变:

fdata.append('file', bb.getBlob("application/octet-stream"));

to:

fdata.append('file', bb.getBlob("application/octet-stream"), obj.filename);

它给出了期望的结果。

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

更改 BlobBuilder 中的文件名以作为 XHR 上的 FormData 传递 的相关文章

  • jQuery mobile 中的文本区域高度和宽度?

    我修复了 jQuery mobile 中文本区域元素的高度 并且在纵向中得到了完美的高度和宽度 但在横向中宽度没有放大 谁能帮我 提前致谢 HTML
  • 从函数返回函数的目的是什么?

    阅读一些遗留代码 发现 A prototype setSize function var v1 new Vector2 return function size var halfSize v1 copy size multiplyScala
  • .push() 将多个对象放入 JavaScript 数组中返回“未定义”

    当我将项目添加到beats数组然后console log用户时 我得到了数组中正确的项目数 但是当我检查 length 时 我总是得到 1 尝试调用索引总是会给我 未定义 如下所示 Tom beats 1 我想我错过了一些明显的东西 但这让
  • 使用 Node.js 构建网站的最佳实践

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我想知道如何使用 Node js 从头开始 开发一个网站 我明白我怎么能possibly
  • 在版本 4.4.6 中禁用 ckeditor 上下文菜单

    我在 Rails4 项目中使用 ckeditor 我尝试了 ckeditor gem 和 ckeditor rails gem 来提供 ckeditor 库 这里有多个帖子 人们希望删除 ckeditor 上下文菜单 以便可以显示本机浏览器
  • 想要动态处理与分页相关的页码显示:ReactJS

    我有一些分页逻辑工作得很好 唯一的问题是我只能让它显示并固定数量的页面可供选择 现在我已经把它放到了 5 页 但我希望它能够根据总记录动态更改 假设我有 100 条记录 每页限制为 10 条 将有 10 页 现在我只能让它以这种方式显示 第
  • nodejs (libuv) 事件循环是否在一个阶段(队列)中执行所有回调,然后再进入下一阶段或以循环方式运行?

    我正在研究 Node js 中 libuv 提供的事件循环 我遇到了关注 Deepal Jayasekara 的博客 https blog insiderattack net event loop and the big picture n
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • 本地推送通知到在应用程序内运行 JS 代码的 Win8 Live Tile

    我正在尝试将更新发送到我的应用程序的磁贴 当应用程序运行时 这可以正常工作 例如 当用户单击按钮时 我可以轻松地将磁贴更新通知发送到磁贴 我无法解决的是当应用程序无法运行时如何更新磁贴 我找到的唯一选择是使用以下命令从远程 Web 服务器拉
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • React autoFocus 将光标设置为输入值的开头

    我有一个受控输入 最初显示一个值 我已将该输入设置为自动聚焦 但当我希望它出现在末尾时 光标出现在输入的开头 我知道这可能是因为自动对焦是在值之前添加的 但我不能 100 确定 在输入字段末尾完成光标初始化的最佳方法是什么 var Test
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • JavaScript推送函数中的动态变量

    我在 JavaScript 中使用推送功能 var chartData for var i 0 i lt 3 i chartData push date new Date year s mon s date s hr s min s sec
  • IE 中的 XPath 查询使用从零开始的索引,但 W3C 规范是从一开始的。我应该如何处理差异?

    问题 我正在转换目前仅适用于 Internet Explorer 的相对较大的 Javascript 代码 以便使其也适用于其他浏览器 由于代码广泛使用 XPath 我们做了一些兼容性功能以使事情变得更容易 function selectN
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 如何在另一个自定义 Hook 中使用返回值的自定义 Hook?

    我正在使用 React native 其中有一个名为的自定义 HookuseUser使用以下方法从 AWS Amplify 获取用户信息Auth getUserInfro方法 然后获取返回对象的一部分并用它设置一个状态变量 我还有另一个名为
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供

随机推荐

  • Sublime Text 插件:添加 python 库

    我正在尝试编写一个 Sublime Text 插件 它可以进行一些 Windows api 调用 我做了一些研究发现这个Python库提供了我需要使用的API 所以 我正在尝试使用这个库 当我在我的 sublime text 插件中添加导入
  • 未捕获的类型错误:无法读取 null 的属性“lastChild”

    h2 Matching Game h2 p Click on the EXTRA face on the left side p
  • 在没有 /bin/bash 命令的情况下运行 docker 容器

    我创建了 docker 容器 sudo docker run it ubuntu bin bash 在我读过的 码头工人书 一书中 只要我们指定的命令 bin bash 正在运行 容器就会运行 我不是用选项 it 创建了终端并且不需要 bi
  • 如何在 angularjs 单元测试中触发 mousemove 事件

    我已经实现了一个使用鼠标事件的 angularjs 指令 单击组件并上下移动鼠标可以更改值 所以我需要知道如何在单元测试中触发 mousemove 事件 我使用 karma jasmine 我想建议在单元测试中当鼠标向上或向下移动时测试此组
  • 如何圆化 Matplotlib 轴脊柱的连接

    这是一个相当简单的问题 我正在创建一个具有多个插入轴的 Matplotlib 图形 我已删除刻度线 以便每个插入轴的插入脊椎以 90 度角相交 但是 当您向该图窗添加图例时 它会添加一个图例对象 该图例对象的每个 边缘 都有稍微圆形的脊柱连
  • Java 中的特定方法有多少字节的字节码?

    我最近读到乔恩 正光的博客巨大的方法 8000 字节的字节码 不是使用 HotSpot 进行 JIT 编译的 所以我的问题是 作为程序员 如何找出特定方法有多少字节的字节码 JIT 编译器似乎当然知道 我可以从 class file 您可以
  • Git忽略目录和目录/*有什么区别?

    我对忽略 git 中目录内容的正确方法感到困惑 假设我有以下目录结构 my project www 1 txt 2 txt gitignore 放置这个有什么区别 www 和这个 www 我问这个问题的原因是 在 git 中 如果目录为空
  • 使用 RegEx 查找 VBA 注释

    我正在尝试使用正则表达式查找所有 VBA 注释 我有一些大部分有效的东西 但有一些例外我无法弄清楚 我正在使用的表达 拿我们的测试代码来说 Working This is a test This should be captured Wor
  • Python/Bokeh - 如何通过使用 Select、回调和 CustomJS/js_on_change 从 dict 中按列值过滤行来更改数据源

    问题应该出在回调函数上 不幸的是 我没有 JS 经验 我从 dataframe js 库中获取了这部分 但它不起作用 我们的想法是建立一个仪表板 其中包含费率 1 和费率 2 的两个图表以及两个费率类别的下拉菜单 import pandas
  • 如何在 HTML 网页中显示客户端计算机上的本地图像

    如何在网络服务器上托管的 HTML 网页中显示放置在客户端计算机上的本地图像 我放置的图像很少C Images文件夹所以路径应该是file C Images 1 jpg for a image 1 jpg 我正在使用代码 img src 在
  • excel vba冻结窗格而不选择

    我在 Excel 中有一个 VBA 脚本 可以冻结 Excel 工作表的窗格 但我很好奇是否可以在不先选择范围的情况下实现这一点 这是我当前的代码 它冻结了第 1 7 行 但使用Range Select ActiveSheet Range
  • 获取编辑元素的删除事件

    我正在尝试模拟 不存在的 更改事件contentEditable元素 但我猜这对于输入元素来说是同样的问题 不幸的是 当用户选择一些文本并从浏览器的上下文菜单中选择 删除 时 我不知道如何获取事件 有什么建议我可以如何得到它吗 修订后的答案
  • Python Regex - 在文本文件中的(多个)表达式之间提取文本

    我是一名 Python 初学者 如果您能帮助我解决文本提取问题 我将非常感激 我想提取文本文件中两个表达式之间的所有文本 字母的开头和结尾 对于两者 字母的开头和结尾都有多种可能的表达式 在列表 letter begin 和 letter
  • 如何在表格视图底部添加新行 - 聊天消息

    每次用户键入消息并单击 发送 时 我都会使用以下代码添加新消息 效果很好 但问题是 新消息被插入到表视图的顶部 我希望将其插入底部 import UIKit class ViewController UIViewController UIT
  • NServiceBus:指定消息顺序

    我在它自己的进程中使用 NServiceBus 所以not使用通用主机 我希望按特定顺序为一条消息提供多个消息处理程序 对于通用主机 您将实施ISpecifyMessageHandlerOrdering 但我不知道在托管您自己的 NServ
  • 使用 strut2 jquery 插件标签将 JSON 对象发送到 Struts 2 操作

    我们可以通过以下方式将 JSON 发送到 Struts2 操作json拦截器 有很好的样本http tech learnerandtutor com send json object to struts 2 action by jquery
  • 文件夹内容更改时重新启动 ASP.NET 应用程序

    我正在编写一个带有 插件 的网络应用程序 这些插件将是 DLL 文件 它将通过预定义的接口和东西导出其功能 所有 DLL 文件都位于名为 Plugins 的文件夹中 ASP NET 应用程序在启动时加载它们 通过使用 Assembly Lo
  • 带有文本的纹理,看起来像素化,如何在 unity3d 中解决这个问题?

    我使用 1024x1024 纹理 它映射到 Unity3d 中的四边形 目前的目标平台是 PC 独立平台 它看起来是这样的 您可以看到屏幕中的对象有多么像素化和模糊 如何才能使其更具可读性并减少像素化 导入设置 质量设置和关闭 mip ma
  • 读取/写入 Excel 2007 受密码保护的文档

    Office 2007 使用什么方法进行加密 当从 Office 菜单中选择 加密 并设置密码时 我的 C 应用程序需要创建和读取加密的 Excel 2007 文件 xlsx 重要的是这些文件仍然可以从 Excel 访问 因此我必须使用 M
  • 更改 BlobBuilder 中的文件名以作为 XHR 上的 FormData 传递

    我目前正在尝试将 ArrayBuffer 上传到服务器 我无法更改 该服务器需要我以多部分 表单数据格式上传的文件 服务器从Content Disposition部分的filename将被保存并在Content type提供文件时将使用的