在WebKit/Chrome中使用XHR上传二进制字符串(相当于Firefox的sendAsBinary)

2023-11-22

我正在开发一个使用多个尖端 WebKit 功能的 Web 应用程序。它本质上是这样做的:读取本地文件FileReader,使用 JavaScript 解压缩库将每个文件解压缩为字符串,并使用 XMLHttpRequest POST 每个文件。这对于文本文件非常有效,但不幸的是它会损坏二进制文件(在本例中为图像)。火狐有一个sendAsBinary解决这个问题的方法,但它是非标准的,更重要的是,它不适用于我们依赖其他功能的 WebKit/Chrome。

有很多解决方法,但到目前为止,没有一个对我有用:

  • 使用长字符串中的标头、边界等模拟文件上传请求(像这样).
  • 在 xhr 对象上设置一堆标头(as such)
  • 使用BlobBuilder,将字符串附加到构建器,并使用getBlob获取要上传的 blob (按照推荐在 Chrome 问题线程中关于此)

最重要的是,我正在寻找的是向前兼容的解决方案。谢谢!


我有同样的问题。

这对我有用:

XMLHttpRequest.prototype.sendAsBinary = function(datastr) {
    function byteValue(x) {
        return x.charCodeAt(0) & 0xff;
    }
    var ords = Array.prototype.map.call(datastr, byteValue);
    var ui8a = new Uint8Array(ords);
    this.send(ui8a.buffer);
}

检查这里:http://javascript0.org/wiki/Portable_sendAsBinary

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

在WebKit/Chrome中使用XHR上传二进制字符串(相当于Firefox的sendAsBinary) 的相关文章

  • 如何删除除任何特定 id 之外的元素

    假设有一个父 id 其中包含许多元素 我想删除除一个元素之外的所有元素 ex parent id children not id n remove
  • 如何阻止直接访问我的 JavaScript 文件?

    我使用 Minify 来缩小并缓存所有脚本请求 我只希望我的用户能够访问 JavaScript 文件的缩小版本 缩小位于www example com min我的脚本位于www example com scripts 如何阻止直接访问doc
  • JavaScript 添加布尔值

    console log true true 2 console log typeof true true number console log isNaN true true false 为什么两个布尔类型相加会产生一个数字 我有点理解 如
  • 从函数返回函数的目的是什么?

    阅读一些遗留代码 发现 A prototype setSize function var v1 new Vector2 return function size var halfSize v1 copy size multiplyScala
  • Vue 3 Composition API 提供/注入在单文件组件中不起作用

    我正在使用 Composition API 在 VueJS 3 中创建一个库 我实现了提供 注入 如中所述docs https v3 vuejs org guide composition api provide inject html i
  • 位置特征检测:固定

    我正在尝试找到一个脚本来检测设备是否放置position fixed元素相对于视口而不是整个文档 目前 标准桌面浏览器和 Mobile Safari 适用于 iOS 5 都是这样做的 而 Android 设备则相对于整个文档放置固定元素 我
  • Angular.js:如何从无序列表中获取 orderBy 或过滤器来工作?

    尝试根据价格和评级 在返回的对象中 进行排序 我宁愿用 ng click 和 li 来代替使用选择菜单 有没有办法做到这一点 我环顾四周 这是我能想到的最接近的 ul class restaurant filter li i class i
  • 如何使用 Playwright 使用选择器查找框架 (iframe)

    我有一个小问题 无法找到使用 Microsoft Playwright 框架的答案 根据您可以使用以下代码获取 iframe const frame page frame frame login 但是如何使用选择器来查找 iframe 并与
  • JavaScript 验证和 PHP 验证?

    我正在使用 jquery 验证插件来验证空表单 我还应该在 PHP 中检查一下以确保 100 正确吗 或者用 javascript 验证就可以了 谢谢 您应该始终在服务器上进行验证 如果用户以某种方式不使用 Javascript 提交表单
  • 为什么 setTimeout 在 Chrome 中触发两次,而在 IE 或 Firefox 中则不然?

    有人能告诉我为什么 javascript 函数 生成新号码 在 Chrome 中触发两次 但在 IE 或 Firefox 中则不会 使用 Chrome 20 0 1132 57 IE9 和 Firefox 13
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

    我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • 使用 next.js 进行服务器端渲染与传统 SSR

    我非常习惯 SSR 意味着页面得到完全刷新并从服务器接收完整 HTML 的方法 其中根据后端堆栈使用 razor pub other 进行渲染 因此 每次用户单击导航链接时 它只会向服务器发送请求 整个页面将刷新 接收新的 HTML 这就是
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • 没有输入的 jQuery 日期选择器

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

随机推荐

  • Logback:SizeAndTimeBasedRollingPolicy 将totalSizeCap 应用于maxHistory 中的每一天

    登录版本1 2 3 我想在我们的 logback 配置文件 logback xml 中使用 SizeAndTimeBasedRollingPolicy 但此时 SizeAndTimeBasedRollingPolicy 无法按预期运行 ht
  • Spring Data MongoDB:BigInteger 到 ObjectId 转换

    我在使用 Spring Data MongoDB 更新查询时遇到问题 我检索一些对象的 id 作为 BigInteger 值 然后我想进行以下查询 Query query new Query Criteria where id is id
  • 如何删除codeigniter上的cookie

    我不知道如何删除cookie 我想要的是当我提交表格时 cookie 也被删除 我尝试了 delete cookie name 但不起作用 我想是因为我创建的cookiejavascript 请检查我的代码来解决这个问题 这是我的示例文本字
  • 通过 JNDI 使用 ActiveMQ

    我正在尝试使用 JNDI 创建与 ActiveMQ 的简单连接 I have 名为 example A 的队列 根据ActiveMQ 文档涉及 JNDI 如果我想通过 JNDI 使用 ConectionFactories 和队列 主题 我必
  • 如何在视图出现之前滚动到 iPhone 上 UITableView 的底部

    我有一个UITableView填充有不同高度的单元格 我希望当视图被推入视图时表格滚动到底部 我目前有以下功能 NSIndexPath indexPath NSIndexPath indexPathForRow log count 1 in
  • hibernate:在运行时创建实体(带注释)

    是否可以在运行时创建休眠实体类 带注释 应该和运行时添加的表有关 实体应该对 Hibernate 可见 这一点很重要 一般情况下可以吗 您能就这个问题给我一些建议吗 我明白 反思是关键词 但还要寻找更多的词 问候 在这种情况下 您可能希望在
  • 春天不行。 [未初始化常量 Spring::SID::DL ]

    我无法运行 Spring 这是错误日志 myid no MacBook Pro myid spring Users myid rbenv versions 1 9 3 p484 lib ruby gems 1 9 1 gems spring
  • 私有字段会被子类继承吗?

    我读过 子类不能继承私有字段或方法 然而 在这个例子中 class SuperClass private int n 3 int getN return n class SubClass extends SuperClass public
  • c中“atoi”和“strtol”之间的用法差异

    我一直在使用atoi已经一年了 最近几天我遇到一个问题 atoi 20 给出的值为0作为输出 当我用谷歌搜索这个问题时 我发现它已被弃用并且strtol应该使用 我发现的有趣的一点是atoi内部使用strtol 那么 当我将其更改为时 问题
  • 使用 StreamReader 查找字符串的有效方法

    我获取网络响应并使用 Streamreader 获取字符串形式的响应 我的代码是 HttpWebResponse response HttpWebResponse request GetResponse StreamReader reade
  • 如何使用 autofac 注册类型化 httpClient 服务?

    我正在创建 MVC Web 应用程序 该应用程序使用单独的 net core 2 2 调用 apiHttpClients 调用每个控制器 相同的 api Ex 对于用户控制器操作 UserService httpclient 对于后控制器操
  • rgdal“gdal-config”中配置错误

    我目前正在 Linux 集群上用 R 运行一些物种分布建模和丰富度映射 为了运行我的分析 我需要安装 rgdal 以便建模包中的栅格函数正常工作 我已经安装了 proj4 和 gdal 但是 当我尝试安装 rgdal 时 我收到一条错误消息
  • 成为 EC2 上的根设备意味着什么?

    我在 EC2 文档中找不到答案 它是做什么用的 如果我启动了 EBS 支持的实例 则该实例的根设备将是 EBS 卷 如果我在实例上安装一些工具 软件 这些工具 软件是否会默认安装在根实例上 不过我想这个问题确实来自于对根设备的了解很少 有这
  • 如何添加到 MySQL 中的每一行?

    我们有一个简单整数列 我们想要向每一行添加值 10 对于 MySQL 数据库 我们如何在 sql 中执行此操作 实际上我们还有另一个列需要做同样的事情 它是一个日期 我们需要在日期上添加一个月 怎么做 整数 UPDATE table nam
  • 指针是否保证>某个值?

    在 C 中 当我这样做时new 甚至malloc 是否能保证返回地址大于某个值 因为 在这个项目中 我发现使用 0 1k 作为枚举非常有用 但如果有可能获得这么低的值 我不想这样做 我唯一的目标系统是 32 位或 64 位 CPU 操作系统
  • lxml 标签名称带有“:”

    我正在尝试使用 lxml etree 从 JSON 对象创建 xml 树 有些标记名中包含冒号 例如 设置 当前 我尝试使用 settings current 作为标签名称 但我得到这个 ns0 当前 xmlns ns0 设置 是的 首先阅
  • django 2 中的迁移错误; AttributeError:“str”对象没有属性“decode”

    我正在我新建的名为 core 的应用程序上运行迁移 当我在其上运行迁移时 我收到一个错误 告诉我这一点 query query decode errors replace AttributeError str object has no a
  • LXML:无法导入 etree

    我访问此页面并下载了 tar 文件 http pypi python org pypi lxml 2 3 4 downloads 然后 我将 lxml 文件夹复制到我的 Python26 Lib 文件夹中 现在 当我走向口译员并输入from
  • 使用 RESTlet 进行细粒度身份验证

    我想使用带有细粒度身份验证的 RESTlet 公开资源 我的ServerResource应该可以通过访问GET仅适用于经过身份验证的会员 使用基本身份验证 但是 请求使用POST无需任何身份验证的呼叫者也应该可以使用 为了澄清 http 路
  • 在WebKit/Chrome中使用XHR上传二进制字符串(相当于Firefox的sendAsBinary)

    我正在开发一个使用多个尖端 WebKit 功能的 Web 应用程序 它本质上是这样做的 读取本地文件FileReader 使用 JavaScript 解压缩库将每个文件解压缩为字符串 并使用 XMLHttpRequest POST 每个文件