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 相关文章推荐
基于jquery的无缝循环新闻列表插件
Mar 07 Javascript
jquery ajax post提交数据乱码
Nov 05 Javascript
js获取指定日期周数以及星期几的小例子
Jun 27 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
Jul 19 Javascript
微信小程序 wxapp内容组件 text详细介绍
Oct 31 Javascript
javascript 秒表计时器实现代码
Mar 09 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
Feb 13 jQuery
微信小程序实现默认第一个选中变色效果
Jul 17 Javascript
微信小程序聊天功能的示例代码
Jan 13 Javascript
javascript 模块依赖管理的本质深入详解
Apr 30 Javascript
vue键盘事件点击事件加native操作
Jul 27 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
Aug 11 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实现多进程并行执行脚本
2013/06/18 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
js DOM模型操作
2009/12/28 Javascript
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
JavaScript中的 new 命令
2019/05/22 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
python实现定时发送qq消息
2019/01/18 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
python如何控制进程或者线程的个数
2020/10/16 Python
Java的五个基础面试题
2016/02/26 面试题
物流管理专业职业生涯规划书
2014/01/06 职场文书
公司同意接收函
2014/01/13 职场文书
总经理助理职责
2014/02/04 职场文书
党员教师工作决心书
2014/03/13 职场文书
大学生励志演讲稿
2014/04/25 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
法定代表人资格证明书
2014/09/11 职场文书
关于颐和园的导游词
2015/01/30 职场文书
刑事上诉状范文
2015/05/22 职场文书
AI:如何训练机器学习的模型
2021/04/16 Python
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python