图片转换base64编码,点击div的时候选择文件
有时候我们希望文件上传的时候预览图片,下面插件可以实现上传前预览图片 (也可以提取文件的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的时候选择文件的更多相关文章
- 图片转换base64数据上传,并且实现预览的简便方法
对于很多新手来说,实现上传图片并且预览功能,都会感到不知所可,然后开始在网站搜索各种各样的图片上传预览插件,但是有的时候我们只是想简单的实现判断格式,以及预览的功能,使用插件的话,会使得项目的资源空间 ...
- 字符串与图片的Base64编码转换操作
//图片 转为 base64编码的文本 private void button1_Click(object sender, EventArgs e) { OpenFileDialog dlg = ne ...
- 图片和base64编码字符串 互相转换,图片和byte数组互相转换
图片和base64编码字符串 互相转换 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; ...
- JavaScript—图片与base64编码互相转换
图片转换为base64编码 <input type = "file" id = "file" onchange="popFileName(thi ...
- 用javascript实现base64编码器以及图片的base64编码
前面的话 base-64作为常见的编码函数,在基本认证.摘要认证以及一些HTTP扩展中得到了大量应用.在前端领域,也常常把图片转换为base-64编码在网络中传输.本文将详细介绍base64的原理及用 ...
- 图片的base64编码通过javascript生成图片--当前URL地址的二维码应用
前面的话 在电脑端发现一篇好的博文,想在手机上访问.这时,就必须打开手机浏览器输入长长的URL地址才行,非常不方便.如果在博客标题的后面跟一张小的图片,点击该图片后,出现一张二维码的大图,然后再通过手 ...
- HTML5之图片转base64编码
之前在群里看到很多小哥哥小姐姐讨论关于图片base64互转的方法,刚好我之前用到的一个方法给大家分享一下. <!Doctype html><html> <head> ...
- H5 Js图片转base64编码
<!Doctype html> <html> <head> <meta charset="utf-8" /> <title&g ...
- http://imgbase64.duoshitong.com/ 图片转换 base64
base64图片工具介绍: 1.支持 PNG.GIF.JPG.BMP.ICO 格式. 2.将图片转换为Base64编码,可以让你很方便地在没有上传文件的条件下将图片插入其它的网页.编辑器中. 这对于一 ...
随机推荐
- websocket实现简单的通信
websocket server端 #coding=utf8 #!/usr/bin/python import struct,socket import hashlib import threadin ...
- .gitignore无效的原因
有时候,我们编写gitinore后发现文件还是没有被忽略,这是什么原因呢? 熟知git的老鸟们可能已经知道,因为这个文件在之前已经被追踪了,如果想忽略已经被追踪的文件我们需要把这个追踪去除. 对所有文 ...
- break #立即终止本次循环
#!/user/bin/python# -*- coding:utf-8 -*-# print(111)# while True:# print(222)# print(333)# break #立即 ...
- MySQL的复制机制
MySQL的复制机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL复制介绍 1>.MySQL复制允许将主实例(master)上的数据同步到一个或多个从实例( ...
- mybtis 基础
一.什么是mybatis MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBati ...
- 二叉树建立及遍历 C++ 源码
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include <stdlib.h> using namespace s ...
- Spring+Mybatis+SpringMVC+Atomikos多数据源共存+不同数据库事物一致性处理
网上找了一大堆的例子,没一个跑通的,都是copy转发,哎,整理得好辛苦..做个笔记,方便正遇到此问题的猿们能够得到帮助....废话不多说,贴代码..... 项目结构说明: 1.dao层的admin.w ...
- 【1】[leetcode-124] 二叉树中的最大路径和
(没做出来,典型题目重要) 二叉树中的最大路径和(hard) 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经 ...
- webservice 项目中遇到的问题
redshift database 连接异常 解决方案 url 修改添加参数如下 jdbc:redshift://hostname:5439/dbname?ssl=true&sslfactor ...
- 三十八、Linux 线程——线程属性初始化、销毁、设置和获得分离属性
38.1 线程属性初始化和销毁 #include <pthread.h> int pthread_attr_init(pthread_attr_t *attr); int pthread_ ...