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+CSS3实现一款简洁大气带滑动效果的弹出层
May 15 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
Jun 24 Javascript
JavaScript实现动态删除列表框值的方法
Aug 12 Javascript
javascript中BOM基础知识总结
Feb 14 Javascript
angularjs实现天气预报功能
Jun 16 Javascript
Bootstrap 树控件使用经验分享(图文解说)
Nov 06 Javascript
jQuery zTree 异步加载添加子节点重复问题
Nov 29 jQuery
vuex实现登录状态的存储,未登录状态不允许浏览的方法
Mar 09 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
May 01 Javascript
js实现九宫格布局效果
May 28 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
Jul 15 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
Sep 05 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防注
2007/01/15 PHP
php curl的深入解析
2013/06/02 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
五步轻松实现zTree的使用
2017/11/01 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
python读取ini配置文件过程示范
2019/12/23 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
电子银行营销方案
2014/02/22 职场文书
《故乡》教学反思
2014/04/10 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
购房委托书
2014/10/15 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python
教你怎么用python实现字符串转日期
2021/05/24 Python