chrome浏览器对HTML5支持的较好,使用HTML5的File相关的api,可以实现前台页面在选定图片后,不上传即可预览。代码如下:

1、前台代码,使用<input type="file">标签进行文件的选择,其 accept 属性用于过滤文件类型,此处选择几种图片格式的文件。

 <div class="row">
<label for="fileToUpload">请选择一个文件:</label>
<br>
<input type="file" name="fileToUpload" id="fileToUpload" accept="image/gif,image/jpeg,image/x-png,image/tiff,image/x-ms-bmp" />
</div>

2、绑定点击选择文件之后的函数:

 $('#fileToUpload').change(function() {
var div = document.createElement('div');
var img = document.createElement('img');//创建 img 对象 window.URL = window.URL || window.webkitURL;
var imgFile=document.getElementById('fileToUpload');
if(window.URL){
//File API
img.src = window.URL.createObjectURL(imgFile.files[0]); //创建一个object URL,并不是你的本地路径 img.onload = function(e) {
window.URL.revokeObjectURL(this.src); //图片加载后,释放object URL
} }
div.appendChild(img);
}

上述代码先创建了一个 div 元素,然后又创建了一个 img ,并将 img 的 src 属性设置为所选文件(注意是一个 object URL,如果直接使用类似 “file:///c:/a.jpg” 的格式是不行的),然后将 img 添加到 div 中。

以上仅为示例代码。

通过 js 来绑定 img 的 src ,也可以使用另外一种方式:

 $('#fileToUpload').change(function() {
var div = document.createElement('div');
var img = document.createElement('img');//创建 img 对象 var imgFile=document.getElementById('fileToUpload');
var reader = new FileReader();
reader.readAsDataURL(imgFile.files[0]);
reader.onload = function(e){
img.src = e.target.result;
};
div.appendChild(img);
}

即使用 FileReader 的 readAsDataURL 方法,为 img 设置其 src.

值得注意的是,第二种方法所读取的 reader.result 可以用于方法或消息的发送,比如在 chrome 的一个 tab 中,通过 chrome.tabs.sendMessage 方法发送出去,在另一个 tab 中通过 chrome.extension.onMessage.addListener(function(msg)) 接收,接收到的 msg 中的相关数据,依然可以用于所在 tab 中的一个 img 元素的 src 设定,而第一种方法貌似不可以,需要的同学可以注意一下!

chrome浏览器使用HTML5预览图片的更多相关文章

  1. HTML5预览图片、异步上传文件

    注意啦:本文的代码都是以JQuery为示例,jq_开头的变量都是jq对象. 在HTML5中,我们可以在图片上传之前对图片进行预览,就像下面这么做 jq_upload_file.change(funct ...

  2. hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images

    hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images, 本例子主要是使用HTML5 的File API,建立一個可存取到该file的url, 一个空的img标签,ID为img0,把 ...

  3. Html5选择图片并及时预览图片

    以往想要实现图片预览基本都是先传至服务器后等返回链接地址才能进行预览,使用Html5选择图片并及时预览图片的代码如下,使用起来更爽了. <!DOCTYPE html> <html l ...

  4. 本地预览图片html和js例子

    本地预览图片html和js例子,直接上代码吧. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...

  5. [.ashx檔?泛型处理例程?]基础入门#2....FileUpload上传前,预览图片(两种作法--ashx与JavaScript)

    原文出處  http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/20/ashx_beginner_02_fileupload_picture_p ...

  6. 使用readAsDataURL方法预览图片

    使用FileReader接口的readAsDataURL方法实现图片的预览. 在FileReader出现之前,前端的图片预览是这样实现的:把本地图片上传到服务器,服务器把图片地址返回,并把它替换到图片 ...

  7. Thinkphp5+plupload图片上传功能,支持实时预览图片。

    今天和大家分享一个国外的图片上传插件,这个插件支持分片上传大文件.其中著名的七牛云平台的jssdk就使用了puupload插件,可见这个插件还是相当牛叉的. 这个插件不仅仅支持图片上传,还支持大多数文 ...

  8. 异步上传&预览图片-不压缩图片

    本例使用ajaxFileUpload异步上传预览图片 <bean id="multipartResolver" class="org.springframework ...

  9. [js/jquery]移动端手势拖动,放大,缩小预览图片

    摘要 有这样的需求需要在手机端预览图片的时候,实现图片的手势拖动,放大缩小功能.最终通过touch.js这个插件实现了效果. touch.js Touch.js是移动设备上的手势识别与事件库, 由百度 ...

随机推荐

  1. STL源码分析-iterator

    http://note.youdao.com/noteshare?id=4efcb6441063dae956c226f91c161897

  2. selectors

    一.Selectors模块 它具有根据平台选出最佳的IO多路机制,比如在win的系统上他默认的是select模式而在linux上它默认的epoll,建议使用selectors. 常用共分为三种:sel ...

  3. uva 11971 Polygon

    https://vjudge.net/problem/UVA-11971 有一根长度为n的木条,随机选k个位置把它们切成k+1段小木条.求这些小木条能组成一个多边形的概率. 将木条看做一个圆,线上切k ...

  4. Python学习笔记 (十二)偏函数

    摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318447438 ...

  5. Elasticsearch Java API 配置测试

    Elasticsearch1.X,2.X,5.X随着版本的迭代,除了系统升级,Java API也做了相对较大的调整,也就是说,1.X的API在2.X以及5.X乃至未来6.X版本都不是通用的. 本例子使 ...

  6. python-num18 - django进阶一

    一.深入django的路由系统 下面为django的请求生命周期 下面来看下整个生命周期中的路由系统: 在Django的urls中我们可以根据一个URL对应一个函数名来定义路由规则如下: " ...

  7. CSS 中 nth-child 和 nth-of-type 的区别

    假设有如下代码结构,想要查找 Piggy 那个 p <section> <h1>Words</h1> <p>Little</p> <p ...

  8. Codeforces 665E. Beautiful Subarrays (字典树)

    题目链接:http://codeforces.com/problemset/problem/665/E (http://www.fjutacm.com/Problem.jsp?pid=2255) 题意 ...

  9. Jsoup爬取带登录验证码的网站

    今天学完爬虫之后想的爬一下我们学校的教务系统,可是发现登录的时候有验证码.因此研究了Jsoup爬取带验证码的网站: 大体的思路是:(需要注意的是__VIEWSTATE一直变化,所以我们每个页面都需要重 ...

  10. hdfs的datanode工作原理

    datanode的作用: (1)提供真实文件数据的存储服务. (2)文件块(block):最基本的存储单位.对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序 ...