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 相关文章推荐
单击按钮显示隐藏子菜单经典案例
Jan 04 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
Aug 04 Javascript
Javascript原型链的原理详解
Jan 05 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
Aug 25 Javascript
jQuery Ajax实现跨域请求
Jan 21 Javascript
JavaScript变量作用域_动力节点Java学院整理
Jun 27 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
Sep 14 Javascript
关于JavaScript语句后面的分号问题
Dec 07 Javascript
微信小程序时间选择插件使用详解
Dec 28 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
Mar 07 Javascript
详解json串反转义(消除反斜杠)
Aug 12 Javascript
JS访问对象两种方式区别解析
Aug 29 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
mysql limit查询优化分析
2008/11/12 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
php实现的xml操作类
2016/01/15 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
避免回车键导致的页面无意义刷新的解决方法
2011/04/12 Javascript
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
python列表操作使用示例分享
2014/02/21 Python
Python常用小技巧总结
2015/06/01 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
美国翻新电子产品商店:The Store
2019/10/08 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
软件测试笔试题
2012/10/25 面试题
医学生就业推荐表自我鉴定
2014/03/26 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
2015年元旦活动总结
2014/05/09 职场文书
干部鉴定材料
2014/05/18 职场文书
2014年保管员工作总结
2014/11/18 职场文书
2014年女职工工作总结
2014/11/27 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书
导游词之上饶龟峰
2019/10/25 职场文书
解决Go gorm踩过的坑
2021/04/30 Golang
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript