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的仿Windows Aero弹出窗(漂亮的关闭按钮)
Sep 28 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
Feb 05 Javascript
jQuery对象与DOM对象之间的相互转换
Mar 03 Javascript
为何JS操作的href都是javascript:void(0);呢
Nov 12 Javascript
javascript 实现动态侧边栏实例详解
Nov 11 Javascript
angular实现表单验证及提交功能
Feb 01 Javascript
基于JS实现翻书效果的页面切换样式
Feb 16 Javascript
Vue声明式渲染详解
May 17 Javascript
React中上传图片到七牛的示例代码
Oct 10 Javascript
webpack本地开发环境无法用IP访问的解决方法
Mar 20 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
May 09 Javascript
JS如何在不同平台实现多语言方式
Jul 16 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 小乘法表实现代码
2009/07/16 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
[03:55]显微镜下的DOTA2特别篇——430灰烬之灵神级操作
2014/06/24 DOTA
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
python定时器使用示例分享
2014/02/16 Python
详解C++编程中一元运算符的重载
2016/01/19 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
Django REST framework 分页的实现代码
2019/06/19 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
想学画画?python满足你!
2020/12/24 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
保护环境倡议书500字
2014/05/19 职场文书
名人演讲稿范文
2014/09/16 职场文书
社区活动总结
2015/02/04 职场文书
小班教师个人总结
2015/02/05 职场文书
2015年护士节活动总结
2015/02/10 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
vue特效之翻牌动画
2022/04/20 Vue.js
Rust中的Struct使用示例详解
2022/08/14 Javascript