chrome浏览器使用HTML5预览图片
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预览图片的更多相关文章
- HTML5预览图片、异步上传文件
注意啦:本文的代码都是以JQuery为示例,jq_开头的变量都是jq对象. 在HTML5中,我们可以在图片上传之前对图片进行预览,就像下面这么做 jq_upload_file.change(funct ...
- hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images
hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images, 本例子主要是使用HTML5 的File API,建立一個可存取到该file的url, 一个空的img标签,ID为img0,把 ...
- Html5选择图片并及时预览图片
以往想要实现图片预览基本都是先传至服务器后等返回链接地址才能进行预览,使用Html5选择图片并及时预览图片的代码如下,使用起来更爽了. <!DOCTYPE html> <html l ...
- 本地预览图片html和js例子
本地预览图片html和js例子,直接上代码吧. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...
- [.ashx檔?泛型处理例程?]基础入门#2....FileUpload上传前,预览图片(两种作法--ashx与JavaScript)
原文出處 http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/20/ashx_beginner_02_fileupload_picture_p ...
- 使用readAsDataURL方法预览图片
使用FileReader接口的readAsDataURL方法实现图片的预览. 在FileReader出现之前,前端的图片预览是这样实现的:把本地图片上传到服务器,服务器把图片地址返回,并把它替换到图片 ...
- Thinkphp5+plupload图片上传功能,支持实时预览图片。
今天和大家分享一个国外的图片上传插件,这个插件支持分片上传大文件.其中著名的七牛云平台的jssdk就使用了puupload插件,可见这个插件还是相当牛叉的. 这个插件不仅仅支持图片上传,还支持大多数文 ...
- 异步上传&预览图片-不压缩图片
本例使用ajaxFileUpload异步上传预览图片 <bean id="multipartResolver" class="org.springframework ...
- [js/jquery]移动端手势拖动,放大,缩小预览图片
摘要 有这样的需求需要在手机端预览图片的时候,实现图片的手势拖动,放大缩小功能.最终通过touch.js这个插件实现了效果. touch.js Touch.js是移动设备上的手势识别与事件库, 由百度 ...
随机推荐
- [转]从头开始 GAN
1 前言 GAN的火爆想必大家都很清楚了,各种GAN像雨后春笋一样冒出来,大家也都可以名正言顺的说脏话了[微笑脸].虽然目前GAN的酷炫应用还集中在图像生成上,但是GAN也已经拓展到NLP,Robot ...
- Codeforces 895.D String Mark
D. String Mark time limit per test 4 seconds memory limit per test 256 megabytes input standard inpu ...
- Leetcode 832.翻转图像
1.题目描述 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果. 水平翻转图片就是将图片的每一行都进行翻转,即逆序.例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1] ...
- 微信小程序踩过的坑
之前用小程序开发工具做过一个项目了,最近又新开了一个项目,在登录的时候发现总是提示code不合法,找了半天也未发现原因 后来同事提醒是不是因为开发工具里设置的AppId的问题,果断将当前工具里默认Ap ...
- CF757 C hash
一种数字可以变成另一种数,要求每组中变换前后各种数字数量不变,问方案数 对现有每组中的每个数字构造出现在各个组情况的序列,如2 出现在第一组和第二组各一次那么就要加入组别的标号1,2,出现重复次仍要加 ...
- lazyload support for Zepto.js
关于lazyload,很久之前整理过它的文档:<Lazy Load(1.7.0)中文文档 -- 延迟加载图片的jQuery插件> 因为懒,所以才要用lazyload.但lazyload用了 ...
- 【CodeForces】626 F. Group Projects 动态规划
[题目]F. Group Projects [题意]给定k和n个数字ai,要求分成若干集合使得每个集合内部极差的总和不超过k的方案数.n<=200,m<=1000,1<=ai< ...
- SQL Server 高级SQL
查询view 的列和列数据类型 SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'vi ...
- spring mvc convention over configuration 之 RequestToViewNameTranslator
1. RequestToViewNameTranslator简介 在springmvc中很多地方都是约定优于配置的,比如这种写法: @Controller public class IndexActi ...
- 福建工程学院寒假作业第一周F题
Subsequence TimeLimit:1000MS MemoryLimit:65536K 64-bit integer IO format:%lld 问题描述: A sequence of ...