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 相关文章推荐
北京奥运官方网站幻灯切换效果flash版打包下载
Jan 30 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
Dec 15 Javascript
基于node实现websocket协议
Apr 25 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
May 10 Javascript
AngularJS递归指令实现Tree View效果示例
Nov 07 Javascript
jQuery插件扩展实例【添加回调函数】
Nov 26 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
Nov 30 Javascript
快速了解vue-cli 3.0 新特性
Feb 28 Javascript
百度小程序自定义通用toast组件
Jul 17 Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 Javascript
vue点击自增和求和的实例代码
Nov 06 Javascript
Vue 组件的挂载与父子组件的传值实例
Sep 02 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获取远程图片并把它保存到本地的代码
2008/04/07 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
jquery 学习笔记一
2010/04/07 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
下拉菜单点击实现连接跳转功能的js代码
2013/05/19 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
面包屑导航详解
2017/12/07 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
python求素数示例分享
2014/02/16 Python
Python线程中对join方法的运用的教程
2015/04/09 Python
Python 序列的方法总结
2016/10/18 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
详解Python import方法引入模块的实例
2017/08/02 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
python 穷举指定长度的密码例子
2020/04/02 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
CSS3 translate导致字体模糊的实例代码
2019/08/30 HTML / CSS
国际书籍零售商:Wordery
2017/11/01 全球购物
市场营销毕业生自荐信
2013/11/23 职场文书
年会搞笑主持词
2014/03/27 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
排球赛新闻稿
2015/07/17 职场文书
小区物业管理2015年度工作总结
2015/10/22 职场文书
靠谱的活动总结
2019/04/16 职场文书
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技