分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

前端 上传预览功能实现

发布时间:2023-09-06 02:03责任编辑:熊小新关键词:前端
 <div ?style="position: relative;"> ????<input id="files" type="file" onchange="previewImage(this, ‘prvid‘)" multiple="multiple" style="cursor: pointer;z-index: 9999;position: absolute;opacity: 0;padding: 80px 0px;"> ???????<div id="prvid" style="border: 1px solid #bfbfbf; height: 160px; width: 270px; border-radius: 10px;"> ???????????<img src="../resources/imgs/selectImg.png" style="position: absolute;top: 50px;left: 130px;" /> ????????????<p class="showFileName" style="margin-top: 95px;color: #bfbfbf; text-align: center;">选择文件</p> ?????</div> </div>
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 = ‘<img src="../resources/imgs/selectImg.png" style="position: absolute;top: 50px;left: 130px;" />‘+ ????????‘<p class="showFileName" style="margin-top: 95px;color: #bfbfbf; text-align: center;">选择文件</p>‘;if (window.FileReader) { // html5方案var fileSize = file.files[0].sizeif(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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved