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 相关文章推荐
JavaScript高级程序设计 事件学习笔记
Sep 10 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
Nov 05 Javascript
jquery分页对象使用示例
Apr 01 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
Jan 23 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
May 12 Javascript
Backbone中View之间传值的学习心得
Aug 09 Javascript
BootStrap 模态框实现刷新网页并关闭功能
Jan 04 Javascript
详解vue数据渲染出现闪烁问题
Jun 29 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
Sep 30 Javascript
Vue press 支持图片放大功能的实例代码
Nov 09 Javascript
JavaScript生成随机验证码代码实例
Sep 28 Javascript
Vue3 源码导读(推荐)
Oct 14 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
?算你??的 PHP 程式大小
2006/12/06 PHP
如何用PHP实现插入排序?
2013/04/10 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
配置python的编程环境之Anaconda + VSCode的教程
2020/03/29 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
Python 实现RSA加解密文本文件
2020/12/30 Python
荷兰之家英文站:Holland at Home
2016/10/26 全球购物
Farnell德国:电子元器件供应商
2018/07/10 全球购物
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
经典c++面试题六
2012/01/18 面试题
架构师岗位职责
2013/11/18 职场文书
大学校园生活自我鉴定
2014/01/13 职场文书
运动会稿件200字
2014/02/07 职场文书
办公室副主任职责范本
2014/03/08 职场文书
法务专员岗位职责
2015/02/14 职场文书
营运督导岗位职责
2015/04/10 职场文书
公司门卫岗位职责
2015/04/13 职场文书
广播体操比赛主持词
2015/06/29 职场文书