博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端 上传预览功能实现
阅读量:6463 次
发布时间:2019-06-23

本文共 1929 字,大约阅读时间需要 6 分钟。

选择文件

function previewImage(file, prvid) { 	/* file:file控件 	* prvid: 图片预览容器 	*/ 	var prvbox = document.getElementById(prvid);	var tip = "请上传jpg/png/gif格式的图片文件!"; // 设定提示信息 	var filters = { 	"jpeg" : "/9j/4", 	"gif" : "R0lGOD", 	"png" : "iVBORw" 	} 	var html1 = ''+         		'

选择文件

'; if (window.FileReader) { // html5方案 var fileSize = file.files[0].size if(fileSize>500000){ alert("请上传小于500K的文件!") return; } for (var i=0, f; f = file.files[i]; i++) { var fr = new FileReader(); fr.onload = function(e) { var src = e.target.result; if (!validateImg(src)) { alert(tip) } else { showPrvImg(src); } } fr.readAsDataURL(f); } } else { // 降级处理 if ( !/\.jpg$|\.png$|\.gif$/i.test(file.value) ) { alert(tip); } else { var fileObj = file.files[0].size; console.log(fileObj); showPrvImg(file.value); } } function validateImg(data) { var pos = data.indexOf(",") + 1; for (var e in filters) { if (data.indexOf(filters[e]) === pos) { return e; } } return null; } function showPrvImg(src) { var img = document.createElement("img"); img.src = src; img.style.width = "270px"; img.style.height = "160px"; img.style.borderRadius = "10px"; //img.style.filter = 'alpha(opacity:'+50+')'; //设置IE的透明度 //img.style.opacity = 50 / 100; //设置fierfox等透明度,注意透明度值是小数 prvbox.innerHTML = ""; prvbox.appendChild(img); var file = $("#files").val(); var arr=file.split('\\'); console.log(arr) var fileName=arr[arr.length-1]; console.log(fileName) //document.getElementsByClassName('showFileName').innerHTML=fileName; //$(".showFileName").val(fileName); //$(".showFileName").html(fileName); } }

  直接粘代码吧;

  然后

       上传预览的原理就是:

    通过input的type=file属性和window的内置FileReader对象,利用FileReader对象的readAsDataURL方法把图片数据转成base64字符串数据,然后把这个base64字符串数据赋值给一个图片标签的src属性..

  然后 

  就实现预览效果啦

      

转载于:https://www.cnblogs.com/moli-/p/9295802.html

你可能感兴趣的文章
js和ajax点赞功能代码_怎么利用ajax 和 js实现点赞功能
查看>>
android 等待圈_Android ProgressDialog 转圈圈
查看>>
join为什么每个字符都分割了 js_js中join()与 split()的对比
查看>>
antd 动态添加表单_antd中form表单添加与删除
查看>>
蓝桥杯单片机十一届省赛_卓因学员斩获第十一届“蓝桥杯”全国创意编程大赛一等奖...
查看>>
c语言倒计时不影响进程_linux学习15,执行程序就像读文章,换本书就相当于切换了进程...
查看>>
float正则表达式 带逗号_python正则表达式小试牛刀
查看>>
cf卡序列号修改工具_雄迈测试工装工具
查看>>
$.getjson异常信息提示_SpringBoot 异常处理
查看>>
数字盲打怎么练_一篇文章告诉你关于学习盲打的知识
查看>>
anaconda处理大数据_大数据的处理流程
查看>>
饲料码垛机器人技术方案_坐标机器人码垛机的技术和结构特点
查看>>
access查询成绩小于5分_CPA考生59分真相:成绩查询当天,他其实有一次通过的机会...
查看>>
asp手机拍照显示_手机 | 华为P50外形曝光:首次采居中挖孔、后摄类似Mate40
查看>>
风电场数据库_如何让风电场更友好、更智慧?
查看>>
全局 快捷键_让同事看呆的表格快捷键
查看>>
# 保持最外层获取焦点_PCB外层的蚀刻工艺,如何把控蚀刻质量
查看>>
华为如何生成日志_深入理解Kafka服务端之滚动生成新日志段的流程及条件
查看>>
各维度 特征 重要程度 随机森林_随机森林算法梳理
查看>>
手机悉昙体梵文输入法_梵文天城体字体及输入法
查看>>