HTML5实现预览本地图片


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

$(function() {

$('#upload_image').change(function(event) {

// 根据这个 <input> 获取文件的 HTML5 js 对象

var files = event.target.files, file;

if (files && files.length > 0) {

// 获取目前上传的文件

file = files[0];

// 来在控制台看看到底这个对象是什么

console.log(file);

// 那么我们可以做一下诸如文件大小校验的动作

if(file.size > 1024 * 1024 * 2) {

alert('图片大小不能超过 2MB!');

return false;

}

// !!!!!!

// 下面是关键的关键,通过这个 file 对象生成一个可用的图像 URL

// 获取 window 的 URL 工具

var URL = window.URL || window.webkitURL;

// 通过 file 生成目标 url

var imgURL = URL.createObjectURL(file);

// 用这个 URL 产生一个 <img> 将其显示出来

$('body').append($('<img/>').attr('src', imgURL));

// 使用下面这句可以在内存中释放对此 url 的伺服,跑了之后那个 URL 就无效了

// URL.revokeObjectURL(imgURL);

}

});

});

简要说明
简单来说整个操作设计如下几步:
1.通过 <file> 的 change 事件触发事件,并且获取 event 对象;
2.通过 event 对象获取上传的文件的 js 对象 file ;
3.通过 window.URL 工具从 file 对象生成一个可用的 URL;
4.把这个 URL 置入使用;
5.*释放这个 URL 的伺服
关键点:
1.对于同一个 file ,每次调用 URL.createObjectURL 的时候,都会重新生成一个不同的 URL;
2.调用 URL.createObjectURL 的时候,浏览器自动在内存中开辟空间,用于伺服这个 URL,也就是使得这个 URL 可以请求成功;
3.如果调用了 URL.revokeObjectURL(imgURL); 之后,这个伺服就会关掉,再请求这个 URL 就会 404;
4.这一切都是客户端的事情,服务器端对此一无所知,包括你选择的这个图;
5.这个 imgURL 大概是这个样子:blob:http%3A//localhost%3A8000/22cc97d5-5e46-4d87-9df4-c3e8c0aa72bb

相关推荐:

利用HTML5 Canvas制作一个简单的打飞机游戏

以上就是HTML5实现预览本地图片的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

HTML5中的canvas 和 svg分别是什么?它们的区别在何处?(实例)

浅谈关于HTML5头部<meta>标签的小知识

htm5新增的表单元素keygen标签的用法和属性介绍

HTML5实现一个简单的在线画板

详细介绍HTML5简易在线画图工具的实现案例

h5 canvas中fill 与stroke文字效果实现实例

教你用HTML5画一个馋人的西瓜

如何让HTML5手机端弹出遮罩菜单特效

HTML5 source标签怎么用?HTML5 source标签属性介绍

h5微信支付之引入微信的js-sdk包失败的解决方法

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    暂无评论...