Blob的DataURI错误:DOM异常5:指定了无效或非法的字符
DataURI to Blob errors: DOM Exception 5: An invalid or illegal character was specified
我使用Meteor和Cordova插件在iPhone上录制视频,然后将其转换为blob进行上传。大约有一半的时间我试图将视频从本地文件系统转换为一个blob,它可以工作,另一半时间它会出现以下错误:
InvalidCharacterError: DOM Exception 5: An invalid or illegal character was specified, such as in an XML name.
这似乎通常发生在视频超过3秒的时候,但也发生在真正的短视频上。这是我的dataURItoBlob
函数:
function dataURItoBlob(dataURI) {
var input = dataURI.replace(/'s/g, '');
var binary = atob(input.split(',')[1]);
var array = [];
for(var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
return new Blob([new Uint8Array(array)], {type: "video/mp4"});
}
我真的不确定我做错了什么,我也尝试过其他一些类似的功能,但没有成功。非常感谢您的帮助。谢谢
发现这是base64 dataURI的问题,而不是blob函数的问题。由于某种原因,它在尝试使用readAsDataUrl
时被损坏。根据这个SO答案,我通过readAsBinaryData
和手动附加data:video/mp4;base64,
来解决它。
Cordova-读取大图像会损坏图像
相关文章:
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- AJAX调用中的非法调用
- 无法在现有状态转换期间更新-未使用任何非法的setState()
- 这个问号在Flow中意味着什么:“;?()=>“无效”;
- 从字符串末尾删除空白无效
- 如何解决这种情况下的非法调用类型错误
- Jquery Datatables错误:无效的JSON基元:draw
- 滚动在Chrome中有效,但在Firefox或IE中无效
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- Javascript setattribute-名称和值无效
- 格式化货币无效
- JavaScript错误无效的限定符
- 按键事件无效的原因
- 在实现基本Sharethis代码时指定了无效或非法的字符串
- WebSocket 语法错误:指定了无效或非法的字符串
- gap.client.load未调用回调:在console.log中指定了一个无效或非法的字符串
- htmlunit:指定了一个无效或非法的选择器
- 模拟页面点击在HtmlUnit(2.33)给出无效或非法的选择器异常
- Blob的DataURI错误:DOM异常5:指定了无效或非法的字符