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 相关文章推荐
jquery1.5.1中根据元素ID获取元素对象的代码
Apr 02 Javascript
JS阻止用户多次提交示例代码
Mar 26 Javascript
JS动态改变表格边框宽度的方法
Mar 31 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
Jun 07 Javascript
AngularJS实现单独作用域内的数据操作
Sep 05 Javascript
Asp.Net之JS生成分页条的方法
Nov 23 Javascript
ES6中Class类的静态方法实例小结
Oct 28 Javascript
vue实现element-ui对话框可拖拽功能
Aug 17 Javascript
Javascript之高级数组API的使用实例
Mar 08 Javascript
JavaScript一元正号运算符示例代码
Jun 30 Javascript
vue和小程序项目中使用iconfont的方法
May 19 Javascript
微信小程序实现转盘抽奖
Sep 21 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
PHP4实际应用经验篇(1)
2006/10/09 PHP
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
PHP mkdir()定义和用法
2009/01/14 PHP
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
JS setCapture 区域外事件捕捉
2010/03/18 Javascript
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
微信小程序分享海报生成的实现方法
2018/12/10 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
python逆序打印各位数字的方法
2018/06/25 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
python实现图片上添加图片
2019/11/26 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
python中字典增加和删除使用方法
2020/09/30 Python
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
关键字final的用法
2013/10/02 面试题
办公室年终个人自我评价
2013/10/28 职场文书
给校长的建议书300字
2014/05/16 职场文书
大学生毕业求职信
2014/06/12 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
北京青年观后感
2015/06/15 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL