有时候我们希望文件上传的时候预览图片,下面插件可以实现上传前预览图片 (也可以提取文件的base64编码)

max-height: 140px;max-width: 120px;可以指定图片的最大宽度和高度
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script src="jquery.js" type="application/javascript;charset=utf-8"></script>
<style>
</style>
</head>
<body>
<!--src可以指定一个默认的背景图片-->
<img id="preview" style="width: 120px; height:140px;max-height: 140px;max-width: 120px;" src="">
<div class="btn upload">上传头像<input type="file" name="image_file" id="image_file" class="upload_pic" onchange="fileSelected('preview','image_file');"></div>
<!--显示base64编码-->
<input type="text" id="hidden_photo_base64" /> <script>
// common variables var iBytesUploaded = 0;
var iBytesTotal = 0;
var iPreviousBytesLoaded = 0;
var iMaxFilesize = 1048576; // 1MB
var oTimer = 0;
var sResultFileSize = ''; function fileSelected(a, b) {
var oFile = document.getElementById(b).files[0];
// filter for image files
var rFilter = /^(image\/bmp|image\/gif|image\/jpeg|image\/png|image\/tiff)$/i;
if (!rFilter.test(oFile.type)) {
document.getElementById('error').style.display = 'block';
return;
}
// get preview element
var oImage = document.getElementById(a);
console.log(a);
// prepare HTML5 FileReader
var oReader = new FileReader();
oReader.onload = function(e) { oImage.src = e.target.result;
$("#hidden_photo_base64").val(e.target.result);
}; // read selected file as DataURL
oReader.readAsDataURL(oFile);
}
</script> </body>
</html>

效果:

有时候我们希望点击一个div的时候就可以实现选择图片的功能,也就是点击某个div的时候选择图片

思路:我们将type="file"的input隐藏掉,同时在div的点击事件中触发input的点击事件即可。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script src="jquery.js" type="application/javascript;charset=utf-8"></script>
<style>
</style>
</head>
<body>
<!--src可以指定一个默认的背景图片-->
<div onclick="javascript:$('#image_file').click();" style="height: 200px;width: 200px;">
<img id="preview" style="width: 120px; height:140px;max-height: 140px;max-width: 120px;" src="">
</div> <input type="file" name="image_file" id="image_file" class="upload_pic" onchange="fileSelected('preview','image_file');" style="display: none;"/>
<input type="text" id="hidden_photo_base64" /> <script>// common variables
var iBytesUploaded=0;
var iBytesTotal=0;
var iPreviousBytesLoaded=0;
var iMaxFilesize=1048576; // 1MB
var oTimer=0;
var sResultFileSize='';
function fileSelected(a, b) {
var oFile=document.getElementById(b).files[0];
// filter for image files
var rFilter=/^(image\/bmp|image\/gif|image\/jpeg|image\/png|image\/tiff)$/i;
if(!rFilter.test(oFile.type)) {
document.getElementById('error').style.display='block';
return;
}
// get preview element
var oImage=document.getElementById(a);
console.log(a);
// prepare HTML5 FileReader
var oReader=new FileReader();
oReader.onload=function(e) {
oImage.src=e.target.result;
$("#hidden_photo_base64").val(e.target.result);
}
;
// read selected file as DataURL
oReader.readAsDataURL(oFile);
}</script> </body>
</html>

结果:

触发一个元素的点击事件的时候有  jQueryEle.click();

第二种触发的办法是:    jQueryEle.trigger('click');

补充:今天想着用input限定文件类型以及前台获取文件名等操作

              <div class="layui-input-inline">
<input type="text" onclick="$('#videoFile').click();" lay-verify="required"
autocomplete="off" class="layui-input" />
<!--隐藏的div -->
<input type="file" name="file" id="videoFile" style="display: none;" onchange="checkfile(this)"/>
</div>

JS获取文件内容:

        function checkfile(obj){
var files = $(obj).prop("files");
var file = files[0];
console.log(files);
}

console控制台查看可以获取到的文件信息如下:(重要的参数有:name、size、type)

于是可以用input的  accept="video/*"   属性限制文件类型是视频类型,并且在选中文件之后显示文件名:

              <div class="layui-input-inline">
<input type="text" onclick="$('#videoFile').click();" lay-verify="required"
autocomplete="off" class="layui-input" />
<!--隐藏的div -->
<input type="file" name="file" accept="video/*" id="videoFile" style="display: none;" onchange="checkfile(this)"/>
</div>
        function checkfile(obj){
var files = $(obj).prop("files");
var file = files[0];
var fileName = file.name;
$("#videoFileNameDisplay").val(fileName);
}

图片转换base64编码,点击div的时候选择文件的更多相关文章

  1. 图片转换base64数据上传,并且实现预览的简便方法

    对于很多新手来说,实现上传图片并且预览功能,都会感到不知所可,然后开始在网站搜索各种各样的图片上传预览插件,但是有的时候我们只是想简单的实现判断格式,以及预览的功能,使用插件的话,会使得项目的资源空间 ...

  2. 字符串与图片的Base64编码转换操作

    //图片 转为 base64编码的文本 private void button1_Click(object sender, EventArgs e) { OpenFileDialog dlg = ne ...

  3. 图片和base64编码字符串 互相转换,图片和byte数组互相转换

    图片和base64编码字符串 互相转换 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; ...

  4. JavaScript—图片与base64编码互相转换

    图片转换为base64编码 <input type = "file" id = "file" onchange="popFileName(thi ...

  5. 用javascript实现base64编码器以及图片的base64编码

    前面的话 base-64作为常见的编码函数,在基本认证.摘要认证以及一些HTTP扩展中得到了大量应用.在前端领域,也常常把图片转换为base-64编码在网络中传输.本文将详细介绍base64的原理及用 ...

  6. 图片的base64编码通过javascript生成图片--当前URL地址的二维码应用

    前面的话 在电脑端发现一篇好的博文,想在手机上访问.这时,就必须打开手机浏览器输入长长的URL地址才行,非常不方便.如果在博客标题的后面跟一张小的图片,点击该图片后,出现一张二维码的大图,然后再通过手 ...

  7. HTML5之图片转base64编码

    之前在群里看到很多小哥哥小姐姐讨论关于图片base64互转的方法,刚好我之前用到的一个方法给大家分享一下. <!Doctype html><html> <head> ...

  8. H5 Js图片转base64编码

    <!Doctype html> <html> <head> <meta charset="utf-8" /> <title&g ...

  9. http://imgbase64.duoshitong.com/ 图片转换 base64

    base64图片工具介绍: 1.支持 PNG.GIF.JPG.BMP.ICO 格式. 2.将图片转换为Base64编码,可以让你很方便地在没有上传文件的条件下将图片插入其它的网页.编辑器中. 这对于一 ...

随机推荐

  1. C#语法糖(Csharp Syntactic sugar)

    目录 一.C#语法糖大汇总 1. 经过简化的Property2. 经过两次变异的委托写法3. 集合类的声明4. 集合类各个项的操作5. using == try finally6. 可爱的var7. ...

  2. Mysql的SQL语句常用基本命令

    SQL语句分类:DDL,DML,DQL,DCL. 1.数据库操作: 创建数据库:create database 数据库名 charater set gbk; 删除数据库:drop database 数 ...

  3. 【知名的3D造型设计软件】犀牛 Rhinoceros 5.5.2 for Mac

    [简介] 今天和大家分享最新的3D设计软件 犀牛 Rhinoceros for Mac 5.5.2 版本,支持中文界面,这是一款Mac上知名的3D造型软件,犀牛可以广泛地应用于三维动画制作.工业制造. ...

  4. SQL语法基础之高级应用

    SQL语法基础之高级应用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.存储过程与函数 1>.CREATE PROCEDURE 用来创建存储过程 mysql> ? ...

  5. loadrunner / socket level data and wininet level data

    s loadrunner录制脚本时,此网站证书无效/无法录制到脚本问题解决 http://www.51testing.com/html/64/497364-3569552.html lr录制后空白_l ...

  6. mysql 遍历所有的库并根据表和sql语句备份

    建库.用户语句 create database test_hb; create user ' test_hb'@'%' identified by '123456'; grant all privil ...

  7. python 线程(其他方法,队列,线程池,协程 greenlet模块 gevent模块)

    1.线程的其他方法 from threading import Thread,current_thread import time import threading def f1(n): time.s ...

  8. Dubbo服务的运行方式

    1.使用Servlet容器运行(Tomcat.Jetty)等 ---不可取 缺点:增加复杂性(端口,管理) 浪费资源(内存) 2.自建Main方法类来运行(Spring容器) ---不建议(本地调试可 ...

  9. python学习路线--从入门到入土

    入门技术博客 进阶自己挑选 入门基础 Python入门相对容易又可以干很多事(网站,运维,数据,爬虫等),是一门方便的工具语言.2016年TIOBE排名显示Python已经名列第四,成为脚本语言之首. ...

  10. IO流--字符流与字节流--File类常用功能

    IO流的常用方法: 1: 文件的读取和写入图解: 2:字节流: 读写文件的方法: 一般效率读取: 读取文件:        FileInputStream(); 写数据:            Fil ...