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 相关文章推荐
js图片预加载示例
Apr 30 Javascript
jQuery实现表格颜色交替显示的方法
Mar 09 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
Aug 10 Javascript
利用JavaScript阻止表单提交的两种方法
Aug 11 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
基于bootstrap风格的弹框插件
Dec 28 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
Jun 03 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
Jul 18 Javascript
Vue 实现输入框新增搜索历史记录功能
Oct 15 Javascript
小谈angular ng deploy的实现
Apr 07 Javascript
vue项目配置sass及引入外部scss文件
Apr 14 Vue.js
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/05/09 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
php取得字符串首字母的方法
2015/03/25 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
js输出列表实现代码
2010/09/12 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
js实现分页功能
2017/05/24 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
python解包用法详解
2021/02/17 Python
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
卫校中专生个人自我评价
2013/09/19 职场文书
大学生大二自我鉴定
2013/10/28 职场文书
出国留学介绍信
2014/01/13 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
实践单位评语
2014/04/26 职场文书
大学生通用个人自我评价
2014/04/27 职场文书
师德师风个人总结
2015/02/06 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery