Angular4实现图片上传预览路径不安全的问题解决


Posted in Javascript onDecember 25, 2017

前言

前一段时间做项目时,遇到一个问题就是AngularJS实现图片预览和上传的功能,在Angular4中,通过input:file上传选择图片本地预览的时候,通过window.URL.createObjectURL获取的url赋值给image的src出现错误:

WARNING: sanitizing unsafe URL value

下面介绍一下解决方法:

html代码:

<input type="file" (change)="fileChange($event)" >
<img [src]="imgUrl" alt="">

其中,change方法会在每次选择图片后调用,image的src必须通过属性绑定的形式,使用插值表达式同样会出错

ts代码

import { Component, OnInit } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser' 
@Component({
 selector: 'my-app',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit { 
 imgUrl;
 constructor(
 private sanitizer: DomSanitizer
 ){} 
 ngOnInit() { } 
 fileChange(event){
 let file = event.target.files[0];
 let imgUrl = window.URL.createObjectURL(file);
 let sanitizerUrl = this.sanitizer.bypassSecurityTrustUrl(imgUrl); 
 this.imgUrl = sanitizerUrl;
 }
}

首先,引入DomSanitizer,然后在构造器里面注入,最重要的就是把window.URL.createObjectURL生成的imgUrl通过santizer的bypassSecurityTrustUrl方法,将它转换成安全路径。

最后将生成的安全的url赋值给imgUrl,此时就没有问题了~

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
Mar 02 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
Nov 26 Javascript
JS实现仿微博可关闭弹出层效果
Sep 21 Javascript
Webwork 实现文件上传下载代码详解
Feb 02 Javascript
jQuery基于扩展实现的倒计时效果
May 14 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
May 25 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
May 03 Javascript
使用JavaScript实现alert的实例代码
Jul 06 Javascript
vue后台管理之动态加载路由的方法
Aug 13 Javascript
微信小程序冒泡事件及其阻止方法实例分析
Dec 06 Javascript
JS隐藏号码中间4位代码实例
Apr 09 Javascript
keep-alive不能缓存多层级路由菜单问题解决
Mar 10 Javascript
JS实现十字坐标跟随鼠标效果
Dec 25 #Javascript
jQuery EasyUI window窗口使用实例代码
Dec 25 #jQuery
JS中使用textPath实现线条上的文字
Dec 25 #Javascript
Angular4.0中引入laydate.js日期插件的方法教程
Dec 25 #Javascript
JS实现标签滚动切换效果
Dec 25 #Javascript
JS实现图片居中悬浮效果
Dec 25 #Javascript
JS+CSS实现滚动数字时钟效果
Dec 25 #Javascript
You might like
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
杏林同学录(五)
2006/10/09 PHP
新手学习PHP的一些基础知识分享
2011/07/27 PHP
PHP中的正则表达式函数介绍
2012/02/27 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
php使用反射插入对象示例分享
2014/03/11 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
Javascript 面向对象特性
2009/12/28 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
AngularJS 打开新的标签页实现代码
2017/09/07 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
android面试问题与答案
2016/12/27 面试题
简历上的自我评价怎么写
2014/01/28 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
学生手册评语
2014/05/05 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
安全责任书
2015/01/29 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
实习证明模板
2015/06/16 职场文书
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python