首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Arraybuffer不能输入string,Angular。我正在尝试在页面上显示上传的图片

ArrayBuffer是一种用于在JavaScript中处理二进制数据的对象类型。它通常用于处理音频、视频、图像等多媒体数据。然而,ArrayBuffer本身不能直接接受字符串作为输入,因为它只能处理二进制数据。要在页面上显示上传的图片,你需要将字符串转换为二进制数据,然后将其加载到ArrayBuffer中。

在前端开发中,可以使用FileReader对象将文件读取为字符串或二进制数据。可以通过以下步骤在页面上显示上传的图片:

  1. 监听文件上传事件,获取上传的图片文件。
  2. 创建一个新的FileReader对象。
  3. 使用FileReader的readAsArrayBuffer方法将上传的文件读取为ArrayBuffer。
  4. 监听FileReader的load事件,在事件回调函数中获取读取的ArrayBuffer数据。
  5. 使用获取到的ArrayBuffer数据进行进一步处理,如创建一个新的Image对象。
  6. 将Image对象插入到页面中,从而显示上传的图片。

以下是使用Angular框架进行前端开发的示例代码:

  1. 在HTML模板文件中,添加一个文件上传输入框:
代码语言:txt
复制
<input type="file" (change)="onFileSelected($event)" accept="image/*">
  1. 在组件的Typescript文件中,添加文件选择事件处理方法:
代码语言:txt
复制
onFileSelected(event: any): void {
  const file: File = event.target.files[0];
  if (file) {
    this.displayImage(file);
  }
}
  1. 实现显示上传图片的方法:
代码语言:txt
复制
displayImage(file: File): void {
  const reader = new FileReader();
  reader.onload = (event: any) => {
    const arrayBuffer: ArrayBuffer = event.target.result;
    // 进一步处理ArrayBuffer,如创建Image对象并插入到页面中
    const img = new Image();
    img.src = URL.createObjectURL(new Blob([arrayBuffer]));
    document.body.appendChild(img);
  };
  reader.readAsArrayBuffer(file);
}

这样,当用户选择上传的图片后,图片将会被读取为ArrayBuffer并显示在页面上。

腾讯云提供了一系列云服务和产品,用于支持云计算和前端开发。其中,腾讯云对象存储(COS)可以用于存储和管理上传的图片文件,可以通过以下链接了解更多信息:腾讯云对象存储(COS)

请注意,以上示例代码仅为演示目的,实际开发中可能需要根据具体情况进行适当修改和调整。同时,我将尽力提供最佳答案,但并不能保证答案的完整性和全面性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

记录下:订单模块初步完成

想不出我会干什么耶,只有确定一件事情就是我会全国各地跑一遍 装饰器教程 Based on vue3.0.0, vant3.0.0, vue-router v4.0.0-0, vuex^4.0.0-...入门辅助教程(五)——Observable(可观察对象) RXJS教程 RxJS——给你如丝一般顺滑编程体验(篇幅较长,建议收藏) 动画学习 rxjs 有人开源躺平 开源躺平 Angular 笔记 Angular...,需要刷新页面 资源共享功能 打印机打印问题 拖拽插件 添加小标签问题 小类,大类一般是怎么添加 研究三级联动组件 环境配置问题,提取公共 url 上传组件需要添加loading状态 图片需要懒加载...vue中图片加载与显示默认图片 vue项目设置img标签默认图片 基于阿里Ant Design of Vue上传组件二次封装 301 logout 重定向到登录页面 提取 store 几个组件到一个...,规格添加页面 今天对接规格创建,添加,修改 今晚把基本商品添加图片上传基本信息,搞完 今晚处理,单规格,多规格问题 多规格表格上传,删除处理要回现处理规格,单规格(6-8) 分类也要点击弹框,可以修改添加

89110

【总结】1941- 上传、下载终极解决方案:切片!!!

当用户选择文件时,通过 FileReader 将文件内容读取为 ArrayBuffer,然后将 ArrayBuffer 转换为十六进制字符串,并将结果显示面上。...例如,对于文本文件,可以直接将其内容显示页面的文本框或区域中;对于图片文件,可以使用 标签展示图片;对于音视频文件,可以使用 或 标签来播放。...Blob对象 和 ArrayBuffer是处理二进制数据重要工具。而FileReader则是读取文件内容关键组件。通过这些技术,我们可以方便在前端页面上进行操作或者文件展示。...显示下载进度和完成状态 为了显示下载进度和完成状态,可以客户端实现以下功能: 显示进度条:客户端可以通过监听每个切片下载进度来计算整体下载进度,并实时更新进度条显示。...图片/视频上传和预览: 图片上传和预览:图片上传场景中,用户可以选择多张图片进行上传。通过切片上传,可以加快图片上传速度,并实时显示上传进度。

34610
  • H5上传文件又双叒叕开测了!

    需求背景:为了方便用户上传自己手机内本地视频,同时提高视频分发量,故支持移动端H5面增加上传视频、音乐、图片。 原型图: 1.首页&上传素材空页面: ? ?...; 4.在其他点击logo,返回H5首H5首点击logo,仍在H5首上传素材: 一、H5与PC端素材同步关系: 1.H5上传素材页面只显示通过H5上传素材,PC上传素材不同步至H5...,封面上标注“图片”字样,右侧展示图片标题,上传时间,文件大小; (2)图片获取不到封面时,用默认图代替; (3)上传图片文件标题显示两行,超过两行显示不下用...表示; (4)图片文件支持gif、jpeg...; 博文(必填): 1.输入视频标题,不输入博文即点击“分享”按钮,以红色字提示“博文不能为空”; 2.博文字数不做限制,当博文填写栏输入内容增多,输入框向下键入,支持上下滑动页面进行查看; 3.博文内容支持输入表情...显示分享进度,并提示“加载中,请稍后”,分享完成后toast提示“分享成功”,PC-分发记录中可查看分发记录及分发状态; 2.成功分发后,分发视频应支持播放,视频博文显示正常,可正常浏览和转发等操作

    1.7K20

    【前端知乎】445- File FileList 和 FileReader 对象详解

    本文首发在【个人博客】www.pingan8787.com 更多丰富前端学习资料,可以查看我 Github: 《Leo-JavaScript》https://github.com/pingan8787...File 对象、FileList 对象与 FileReader 对象大家或许不太陌生,常见于文件上传下载操作处理(如处理图片上传预览,读取文件内容,监控文件上传进度等问题)。...最常见使用场合是表单文件上传控件,用户一个 元素上选择文件后,浏览器会生成一个数组,里面是每一个用户选中文件,它们都是 File 实例对象。...只读 共有三种状态: 0 : EMPTY,表示尚未加载任何数据;1 : LOADING,表示数据正在加载;2 : DONE,表示加载完成; FileReader.result 读取完成后文件内容。...对于图片文件,这个字符串可以用于元素 src 属性。注意,这个字符串不能直接进行 Base64 解码,必须把前缀 data:*/*;base64 ,从字符串里删除以后,再进行解码。

    1.6K30

    【前端知乎系列】ArrayBuffer 和 Blob 对象

    [ArrayBufferAndBlob.png] 本文首发在【个人博客】 更多丰富前端学习资料,可以查看我 Github: 《Leo-JavaScript》,内容涵盖数据结构与算法、HTTP、Hybrid...、面试题、React、Angular、TypeScript和Webpack等等。...点个 Star 不迷路~ ArrayBuffer 对象与 Blob 对象大家或许不太陌生,常见于文件上传操作处理(如处理图片上传预览等问题)。 那么本文将与大家深入介绍两者。...概念介绍 ArrayBuffer 对象代表储存二进制数据一段内存,它不能直接读写,只能通过视图(TypedArray视图和DataView视图)来读写,视图作用是以指定格式解读二进制数据。...出于安全考虑,浏览器不允许脚本自行设置这个控件 value 属性,即文件必须是用户手动选取不能是脚本指定。一旦用户选好了文件,脚本就可以读取这个文件。

    1.8K00

    【Web技术】423- 在前端 Word 还能这样玩

    一、背景概述 前阵子听到公司运营小姐姐们抱怨,说富文本编辑器中发布包含图片 Word 文档时,图片和文本内容不能一起复制,每次她们都得分开处理,对于包含较多图片 Word 时,她们处理起来很抓狂...这里已经提前准备了一个包含图片和文本 word2html.docx 文件,然后复制一份重命名为 word2html.rar。看到 rar 后缀相信你已经猜到了,下一步我们要执行解压操作。...经过本人认真观察后发现,解压后 Word 文档中包含图片会被保存到 word/media 目录下。而我们要解决问题就是能识别到 Word 文档中图片,然后自动上传到文件资源服务器。...= loadEvent.target["result"]; callback(arrayBuffer); }; reader.readAsArrayBuffer(file);} 该方法用于实现把输入...当然,期间也尝试了国外在线图片格式化服务和网上一些大佬提供格式化方案,可惜是最终效果都不好,所以对于这种特殊图片格式目前解决方案就是让用户手动上传对应原始图片,如果小伙伴们有好方案,欢迎给我留言哟

    2.9K30

    构建具有用户身份认证 Ionic 应用

    喜欢使用 Ionic,发现使用 Ionic 移植现有的应用程序更多就是修改 HTML 和调整 CSS。 Ionic 2 一月份发布, 可以使用 Angular 开发 Ionic 应用。...下载 这张图片,将它拷贝到 src/assets/image/okta.png, login.html 标签中添加以下代码。...你可以退出之后看一下带标识登录。 ? 注意: 你可能注意到退出之后标签并没有消失。正在查找 没有正常工作 原因。 发布到移动设备 使用 Ionic 浏览器中开发移动应用是非常酷事情。...当出现提示时输入 "y",按回车。 TIP: 发现在模拟器中运行应用程序时最大问题是键盘很难弹出。...为了解决这一问题,当我需要在输入输入文本时,使用 Hardware > Keyboard > Toggle Software Keyboard 。 如果你登录输入凭证,可能什么也不会发生。

    23.2K50

    构建具有用户身份认证 Ionic 应用

    喜欢使用 Ionic,发现使用 Ionic 移植现有的应用程序更多就是修改 HTML 和调整 CSS。 Ionic 2 一月份发布, 可以使用 Angular 开发 Ionic 应用。...下载 这张图片,将它拷贝到 src/assets/image/okta.png, login.html 标签中添加以下代码。...你可以退出之后看一下带标识登录。 ? 注意: 你可能注意到退出之后标签并没有消失。正在查找 没有正常工作 原因。 发布到移动设备 使用 Ionic 浏览器中开发移动应用是非常酷事情。...当出现提示时输入 "y",按回车。 TIP: 发现在模拟器中运行应用程序时最大问题是键盘很难弹出。...为了解决这一问题,当我需要在输入输入文本时,使用 Hardware > Keyboard > Toggle Software Keyboard 。 如果你登录输入凭证,可能什么也不会发生。

    23.8K00

    在前端 Word 还能这样玩

    一、背景概述 前阵子听到公司运营小姐姐们抱怨,说富文本编辑器中发布包含图片 Word 文档时,图片和文本内容不能一起复制,每次她们都得分开处理,对于包含较多图片 Word 时,她们处理起来很抓狂...这里已经提前准备了一个包含图片和文本 word2html.docx 文件,然后复制一份重命名为 word2html.rar。看到 rar 后缀相信你已经猜到了,下一步我们要执行解压操作。...经过本人认真观察后发现,解压后 Word 文档中包含图片会被保存到 word/media 目录下。而我们要解决问题就是能识别到 Word 文档中图片,然后自动上传到文件资源服务器。...= loadEvent.target["result"]; callback(arrayBuffer); }; reader.readAsArrayBuffer(file); } 该方法用于实现把输入...当然,期间也尝试了国外在线图片格式化服务和网上一些大佬提供格式化方案,可惜是最终效果都不好,所以对于这种特殊图片格式目前解决方案就是让用户手动上传对应原始图片,如果小伙伴们有好方案,欢迎给我留言哟

    2.9K30

    ASP.NET WEB——项目创建与文件上传操作

    添加密码双次输入验证 文件上传 前言 ASP.NET WEB是一门非常简单课程内容,我们大概用三章内容来包含所有的知识点,三章分为 1、ASP.NET WEB项目创建与文件上传操作 2、ASP.NET...创建自定义Web窗体 1、项目上点击【鼠标右键】,注意,这里一定是项目上,否则你找不到添加【Web窗体】选项。...2、【添加】->【Web窗体】 3、输入窗体名称,我们这里先输入一个【Login】做测试 创建一个登陆面 创建窗体实际上是多个文件 我们面上进行绘制操作,在后台cs文件中写对应控制函数。.../> 项目中创建保存图片文件夹【imgs】 创建效果: 后台代码: /// /// 上传文件 /// /// </...; //保存图片 this.file.SaveAs(saveUrl); //显示图片 this.showImg.ImageUrl = "/imgs/" + newFileName

    1.7K20

    Nest + Sharp 实现了一个 gif 压缩工具,帮我省不少钱

    不知道大家有没有场景会需要 GIF 压缩,是经常会用到。 因为公众号图片最大支持 10M,但是录制出来 GIF 经常超过 10M。...于是百度搜素 GIF 压缩,就找到了一个工具: 它确实能解决问题: 但是要花钱: 一年 148 呢,对一个小工具来说还是挺贵。 但没办法,这对是刚需,总不能不发文章了吧。...当时心情是这样: 这个 npm 包就是 sharp,它是用来处理各种图片: 它可以用来调整图片大小,对图片做旋转、颜色调整、合成图片等。...然后我们改下前端代码上传接口: 测试下上传: 提示文件上传成功了,然后服务端控制台也打印了文件信息,并且 uploads 目录下可以看到这个文件: 这些文件浏览器打开,可以看到就是上传...gif: 然后我们把文件路径返回就好了: 现在上传文件成功之后就可以拿到这个文件服务端路径了: 然后我们再实现下压缩, AppController 增加一个接口: @Get('compression

    36820

    图片裁剪来聊聊前端二进制

    功能虽然实现了,但其实是似懂非懂~ ? 紧接着 一个不那么简单需求 没过几天,产品又给我提了一个需求:图片裁剪上传及预览。...经过了一番学习,发现这些都属于前端二进制知识范畴,所以搞业务前,准备先把涉及到前端二进制梳理一遍,正所谓:底层基础决定上层建筑嘛 ? ?...对象,来看下定义: ArrayBuffer 对象用来表示通用、固定长度原始二进制数据缓冲区.ArrayBuffer 不能直接操作,而是要通过类型数组对象或 DataView 对象来操作,它们会将缓冲区中数据表示为特定格式...下面让我们回到文章开头提到那个产品“没那么简单”新需求:图片裁剪上传及预览。 其实,像图片裁剪上传这种社区已经有非常成熟解决方案了,如vue-cropper[4]。...3、裁剪图片。 4、读取裁剪后图片预览并上传。 获取文件并读取文件 首先来看下上面第一步提到获取文件。

    1.6K20

    移动商城第三篇(商品管理)【查询商品、添加商品】

    面上我们可以发现到4个查询条件: ?...这里写图片描述 ---- 设置默认上架状态 ? 这里写图片描述 我们面上,是没有原始上架状态。...这里写图片描述 基本信息 基本信息选项卡中,还是需要我们查询所有的品牌数据,面上给用户选择: <option value...(fileInputName); //上传文件名字是不能相同,因此我们设置一下文件名称 String fileName = new SimpleDateFormat...这样做好处是,如果查询条件改变了,默认页数是1,而当我们点击上一下一时候,是会把真正的当前页数传给服务器。 对于基本信息选项卡,图片上传都逻辑都是差不多,我们搬过来用就行了。

    5.7K80

    Ionic3 拍照上传

    image.png camera.html,界面布局,这里主要就是三个测试button,分别对应 拍照、上传、下载功能。还有一个 标签,用于将拍照照片显示面上。...以安卓设备为例,项目app_id是 com.xxx.aaa,那么this.file.externalApplicationStorageDirectory最终代表就是这个路径 “file:///...之后会写一篇文章专门介绍一个简单后台接口。 测试文件上传功能,因为测试文件上传时候,需要访问设备原生功能,比如读取文件,因此需要在真机上调试。可是真机上调试会又一个问题:无法查看日志。...在上面的代码中, 拍照完成回调函数中,直接调用了 this.upload() 方法,该方法负责上传文件,所以拍照完成后,就会直接将图片上传到服务器,同时图片展示界面。...本例中,图片是以 base64 形式上传,也可以用File URL形式上传文件。

    1K30

    DOMString、Document、FormData、Blob、File、ArrayBuffer (转)

    实际上,JavaScript中,DOMString就是String。...实际Web应用中,Blob更多是图片二进制形式上传与下载,虽然其可以实现几乎任意文件二进制传输。...由于权限原因,个人站点无法配置Access-Control-Allow-Origin,测试了下,新浪微博图片是无法二进制请求,不过前东家,xiaomishu.com图片都是可以Ajax请求并...如果还觉得概念抽象,可以看下面的具体认知: 大家可能玩过神器编辑器Sublime Text, 我们随便找张图片拖进去,会发现是类似下面这样子代码: Sublime Text以16进制形式显示图片资源...So,ArrayBuffer就是缓冲出来打死不动二进制对象。 注意,ArrayBuffer本身是不能读写,需要借助类型化数组或DataView对象来解释原始缓冲区(宰割原始二进制数据)。

    2.8K30

    一个Angular 5教程:一步一步指导实现你第一个Angular 5应用程序

    但在基本层面上,请考虑如下这些方法:创建组件之后立即调用构造函数,传递给它数据准备好并填充之前很久才调用该构造函数,而ngOnInit仅在第一个更改周期数据,因此您可以访问组件输入。...但AppComponent将在应用程序中其他任何内容之前加载,因此我们必须认为它是整洁而小巧。我们最好再创建一个组件来照顾存储卡片列表并将其显示我们面上。...我们正在从Firebase获得观察结果。但是,我们*ngForCardList组件中等待对象数组,不能观察这些数组。...这里是routerOutlet,它告诉Router在当前页面上显示其内容位置。所以,结合这些,我们现在在每个页面上都有菜单,以及具有不同内容两个页面: ? 有关更多详细信息,请阅读路由器指南。...如果您想采取更先进措施,请尝试使用Angular 4 Forms:由Toptaler Igor Geshoki进行嵌套和输入验证。 理解基础知识 我们为什么要使用Angular

    42.6K10

    万字长文带你学习【前端开发中二进制数据】| 技术创作特训营第五期

    介绍现代前端开发中,处理二进制数据变得越来越重要。从图像、音频到文件上传,这些数据类型常常以二进制形式存在。...用途 :Blob 主要用于表示任意类型二进制数据,而 File 更适合用于表示文件,特别是涉及到用户上传文件时。...// 使用 Blob 创建 URL 并显示面上const blobUrl = URL.createObjectURL(blob);// 使用 File 创建 URL 并显示面上const fileUrl...很多情况下,你可以使用 Blob 来表示一般二进制数据,而在处理用户上传文件时,使用 File 会更为合适。...ArrayBuffer:ArrayBuffer 是一种通用、固定长度二进制数据缓冲区。它表示一段连续、通常是固定大小内存区域,但是不能直接进行读写操作。

    56831
    领券