带有 base64 数据内容的 HTML5 对象标签导致 Chrome 崩溃

2023-11-30

我正在使用 HTML5 FileReader 读取本地文件。然后,我想在上传到服务器之前立即在浏览器中显示文件内容。

我读取该文件并尝试显示它,如下所示:

var reader = new FileReader();
    reader.onloadend = function () {
        _moleculefilestream = reader.result;
        _molecule.filename = filelist[0].name;
        var filetype = _molecule.filename.substring(_molecule.filename.length - 3);
        var html = '';
        if (filetype == 'jpg' || filetype == 'gif' || filetype == 'png' || filetype == 'tif' || filetype == 'bmp') {
            html += '<img src="' + reader.result + '" />';
        }
        else {
            html += '<object id="zzzxxx" data="' + reader.result + '"';
            if (filetype.toLowerCase() == 'pdf') {
                // For pdf docs, specify a height and width
                html += ' width="770" height="350"';
            }
            html += '>';
            html += '</object>';
        }
        alert('we get here fine');
        $('#molecule-docviewer').html(html);
        alert('we have crashed by this point');
        MarkMoleculeAsDirty();
    }
    reader.readAsDataURL(filelist[0]); 

当我在 Chrome 中上传大约 1.5Mb 的 pdf 时,一切正常。当我尝试以 1.5Mb 或更大的速度上传时,Chrome (V15) 崩溃并显示“aw snap”消息。它显示“我们到达这里很好”消息,但在下一行崩溃。

有人对如何修复或解决方法有任何好主意吗?谢谢。


您应该高度考虑使用blob URL而不是数据 URL。您实际上并没有操作文件的字节,因此没有理由将整个文件读入内存,然后添加 33% 的 Base64 开销将其编码为数据 URL。

window.URL = window.URL || window.webkitURL;

var file = filelist[0];
var url = window.URL.createObjectURL(file);
var html = '';
if (file.type && file.type.match('image/.*')) {
  html += '<img src="' + url + '" />';
}
....
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有 base64 数据内容的 HTML5 对象标签导致 Chrome 崩溃 的相关文章

  • 使用 bootstrap 将搜索图标放入文本框中

    我默认使用引导程序 文本框占据列的全宽 我想将搜索图标放在文本框的末尾 我的代码是这样的 div class container div class row div class form group col lg 4 div div div
  • 使用JQuery检查元素是否有边框?

    所以我正在玩 el css 尝试确定元素是否有边框 我用 css border style solid 设置边框 这是可行的 但实际上它设置了 4 种单独的样式 border right style border left style bo
  • 使用 javascript 将 html 文本渲染为位图,无需服务器端代码

    我需要使用 javascript 代码来转换 html 中的文章 帖子 以便最终用户以位图的形式查看 有没有办法在没有服务器端代码的情况下做到这一点 example p testing text here p 您可以使用例如html2can
  • 使用 javascript 禁用按钮:FF 与 IE

    我有一排按钮 它们都会创建一个我想在新选项卡中打开的 pdf 文件 这样按钮页面就会保持在顶部 并且 pdf 会打开以进行打印 为了防止单击按钮两次 我禁用该按钮 如下所示 我使用 python
  • 如何在 Java 中使用 HTML 解析器和 Apache Tika 来提取所有 HTML 标签?

    我下载了 tika core 和 tika parser 库 但找不到将 HTML 文档解析为字符串的示例代码 我必须删除网页源的所有 html 标签 我能做些什么 如何使用 Apache Tika 进行编码 您想要 html 文件的纯文本
  • Ajax JSON 数据和灯箱冲突

    我有一个带有灯箱插件的画廊设置光廊 http sachinchoolur github io lightGallery docs 该画廊与静态 HTML 完美配合 当我动态抓取 API 数据并尝试让灯箱处理这些项目时 问题就出现了 我似乎无
  • jQuery 在 Chrome 下发现错误元素

    我使用 jQuery 迭代 HTML 表 并动态填充每行的行号 通过在文本框中填充行号 function updateRowNums myTable find tr each function index this find input i
  • 自定义 WP 主题时,我应该将导航栏放在“”标签之前还是之后?

    我正在通过制作子主题来自定义 WP 主题 我将 Bootstrap 中的导航栏放入子主题目录中的 header php 文件中 但是 我不确定在哪里放置导航栏代码 我可以把它都放在前面and之后标记成功 例如 无论我选择哪一个 导航栏都显示
  • 如何设置视频文件的预览,从输入类型='文件'中选择

    在我的模块之一中 我需要从 input type file 浏览视频 之后我需要在开始上传之前显示选定的视频 我使用基本的 HTML 标签来显示 但它不起作用 这是代码 document on change file multi video
  • 如何保留用户的输入打印?

    我正在尝试添加用户的评论 所以我只是尝试读取输入并将其发送以进行打印 但问题是 一旦我刷新页面或输入另一个输入 打印的输入就会消失 因此 即使刷新页面或重新输入新评论 我也希望始终保持所有用户的显示 代码 div div
  • 多语言标记验证器

    是否有免费的在线多语言标记验证服务可以正确识别和验证多语言标记 我确实找到了totalvalidator和htmlvalidator 但这些是 付费 非基于网络的解决方案 Use http validator w3 org nu http
  • WebGL VS Canvas 2D 硬件加速

    这些天 我需要在画布上画很多图像 画布尺寸为800x600px 我有很多256x256px的图像 有些更小 在上面绘制 这些小图像将在画布上组成一个完整的图像 我有两种方法来实现这一点 首先 如果我使用canvas 2D上下文 那就是con
  • 在 Angular html 模板中访问常量枚举

    假设我有一个常量枚举 export const enum MyConstEnum Value1 Value1 Value2 Value2 Value3 Value3 现在我想在我的 Angular 模板中使用它 span This has
  • 网站在 iPhone 屏幕右侧显示空白区域

    我遇到问题http eiglaw com http eiglaw com iPhone 屏幕右侧显示约 25 像素宽的空白 边框 我在 stackoverflow 上研究了这个问题 这些帖子是相关的 但是当我尝试提供的各种解决方案时 我无法
  • 浮动图像周围具有最小列宽的流动文本

    我想要一种方法来防止流动文本列变得太窄 例如 在一列 HTML 文本中 有一个图像浮动到左侧 正如预期的那样 文本沿着图像周围的列的右侧向下流动 但是 如果图像几乎与列一样宽 则文本最终会非常窄 在这种情况下 我希望文本简单地not流过图像
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • 如何使用角度材料在具有可扩展行的表格中创建嵌套垫表

    我有以下数据 id c9d5ab1a subdomain wing domain aircraft part id c9d5ab1a info mimetype application json info dependent parent
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 具有 100% 高度行和 Internet Explorer 9 的表格

    我有以下示例 div style height 150px background color AAAAFF div

随机推荐

  • BigQuery SQL 排除不在空结果中

    我遇到了不返回任何值的问题 数据库中有符合此条件的帐户 有点困惑为什么他们没有被退回 有什么建议么 select accountid from table1 where not in select accountid from table1
  • 如何构建 cURL 并在 Code::Blocks 项目中使用它(静态)

    我知道有很多关于此的主题 但它们都没有帮助我解决我的问题 我只想做一个简单的C 程序使用cURL with 静态库卷曲 没有 DLL 文件 上代码 块 Windows 8 我花了大约 20 个小时尝试这样做 但我发现的都是无用的东西和我不明
  • 位置:Windows Phone 7 中固定

    我正在尝试创建 PhoneGap Windows Phone 7 应用程序 为了模仿应始终在横向屏幕左侧可见的应用程序栏 我想放置一个 div CSS 为position fixed 然而 这不起作用 因为 WP7 上的 IE 似乎不支持它
  • 是否可以使用 MTOM 来响应 CXF RESTful Web 服务

    我在用着CXF 2 2 12我的 Web 服务的库 是否可以使用MTOM 消息传输优化机制 in RESTful回复 希望有任何与此相关的文档 教程的链接 谢谢 MTOM 是特定于 SOAP 的 因此我认为它与 RESTful 架构不兼容
  • 从张量的每个正面切片中提取对角线元素

    我有一个 p p n 张量 我想提取每个 p by p 切片的对角线元素 有谁知道如何在不循环的情况下做到这一点 谢谢 Behold永远强大 永远强大bsxfun for vectorizing MATLAB problems使用非常有效地
  • 如何在IOS sdk(Objective-c)中序列化一个类?

    如何在 Objective C 中序列化以下类 以便它可以与 SBJson 一起使用 当我使用此代码时 出现 动物不支持 JSON 序列化 错误 有人可以指出我哪里出错了吗 Animal h文件的内容如下 import
  • 如何通过publishAdd()通知获取添加的记录(不仅仅是id)?

    Each Sails js模型有方法publishAdd 当新记录添加到关联模型时 这会通知每个侦听器 此通知不包含新创建的记录 所以我必须从客户端发起另一个请求来获取新记录 Sails js 是否有可能发送带有通知的新记录 以便我可以减少
  • 在 java 中完成 FTP 后创建 0 kb 文件

    我正在尝试将文件通过 FTP 传输到远程计算机上 下面是我的代码 FTPClient ftpClient new FTPClient ftpClient connect home abc com ftpClient login remote
  • 如何在文本框中仅允许整数? [复制]

    这个问题在这里已经有答案了 在我的表单中 我希望仅允许在文本框中输入整数值 怎么做 您可以为此使用正则表达式验证器 下面是示例代码
  • 如何在 iOS 中发布 CGImageRef

    我正在编写这个方法来计算图像的平均 R G B 值 以下方法将 UIImage 作为输入并返回包含输入图像的 R G B 值的数组 但我有一个问题 如何 在哪里正确释放 CGImageRef NSArray getAverageRGBVal
  • 实体框架中的关注者架构

    我正在制作一个具有以下功能的应用程序 但我被困在这个问题上 我就这样上来了 public class User public int Id get set public ICollection
  • 运行代码时,如何在 Android Studio 中删除和擦除 USB 设备上保存的数据?

    我的代码使用共享首选项和本地数据库 并将一些数据保存在我的 USB 设备上 我想每次都从头开始运行我的代码 并且这些保存的数据一目了然 现在 我转到设备上的 应用程序 部分中的设置 找到我的应用程序 然后触摸 清除数据 按钮以删除这些保存的
  • 匿名对象有什么优点?

    我有一个名为Sample在我的代码中使用如下 class Sample Object someMethod return someObject 我这样称呼它 Object ob new Sample someMethod 我想知道如果我创建
  • 为 LaTeX 编译清理字符串的函数?

    While xtable has a sanitize text function参数允许清理带有特殊字符的字符串 以阻止 LaTeX 编译破坏 Sweave knitr 文档 该包不会将该函数导出到用户空间 我怎样才能清理字符串asdf
  • 在 ggplot2 中使用闪避条形图绘制相对频率

    有人能回答我如何绘制条形图 将数字 x 变量映射到按 ggplot2 中的因子分组的相对频率吗 重要的是 相对频率应计算为分组的属于一个因素的 x 值内的频率 现在它们被计算为相对于totalx 值的数量 为了说明这一点 举一个例子 lib
  • 使用 Bcrypt 加密 InMemoryAuthentication 密码

    在对 UserDetailsS ervice 的自定义实现使用 Bcrypt 之前 我首先想看看是否可以在内存数据库中使用它 package com patrick Security import org springframework b
  • MYSQL DBDump 错误信息

    我需要获得 DBDUMP 我正在使用 MySQL 当我尝试获取数据库转储时出现以下错误 任何线索它做错了什么 C Program Files MySQL MySQL Server 5 1 bin gt mysqldump u root p
  • 访问 .jar 文件内的文件[重复]

    这个问题在这里已经有答案了 可能的重复 如何从 Java jar 文件中读取资源文件 经过几个小时的谷歌搜索后 我开始对此彻底疯狂 我还在网站上看到了该问题的各种变体 但似乎无法使其发挥作用 JFrame 需要从 ini 文件读取数据 我创
  • Zend 验证器和错误消息:addValidator 和 addErrorMessage

    如果我有一个附加了多个验证器的表单元素 本例中为 3 个 我将如何使用addErrorMessage当每个唯一的验证器失败时创建自定义错误消息 有没有办法为每个验证器添加自定义消息 element new Zend Form Element
  • 带有 base64 数据内容的 HTML5 对象标签导致 Chrome 崩溃

    我正在使用 HTML5 FileReader 读取本地文件 然后 我想在上传到服务器之前立即在浏览器中显示文件内容 我读取该文件并尝试显示它 如下所示 var reader new FileReader reader onloadend f