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将数字转换整数金额大写的方法
Jan 27 Javascript
js实现鼠标点击文本框自动选中内容的方法
Aug 20 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
Sep 27 Javascript
基于JavaScript短信验证码如何实现
Jan 24 Javascript
JS组件中bootstrap multiselect两大组件较量
Jan 26 Javascript
微信小程序 form组件详解及简单实例
Jan 10 Javascript
详解javascript立即执行函数表达式IIFE
Feb 13 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
Dec 19 jQuery
vue watch普通监听和深度监听实例详解(数组和对象)
Aug 16 Javascript
jquery实现垂直无限轮播的方法分析
Jul 16 jQuery
Node.js中文件系统fs模块的使用及常用接口
Mar 06 Javascript
详解vue组件之间的通信
Aug 30 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实现数组筛选奇数和偶数示例
2014/04/11 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
顶部缓冲下拉菜单导航特效的JS代码
2013/08/27 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
VUE 实现element upload上传图片到阿里云
2020/08/12 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
Python 可爱的大小写
2008/09/06 Python
python使用点操作符访问字典(dict)数据的方法
2015/03/16 Python
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
python实现识别相似图片小结
2016/02/22 Python
python实现简易云音乐播放器
2018/01/04 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
python3安装crypto出错及解决方法
2019/07/30 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
django下创建多个app并设置urls方法
2020/08/02 Python
立志成才演讲稿
2014/09/04 职场文书
慰问信范文
2015/02/14 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
法人身份证明书
2015/06/18 职场文书
高二英语教学反思
2016/03/03 职场文书
html输入两个数实现加减乘除功能
2021/07/01 HTML / CSS
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python