天天看点

input file上传图片预览下载地址http://download.csdn.net/detail/cometwo/9383602

input file上传图片预览下载地址http://download.csdn.net/detail/cometwo/9383602
input file上传图片预览下载地址http://download.csdn.net/detail/cometwo/9383602
input file上传图片预览下载地址http://download.csdn.net/detail/cometwo/9383602

问题

加入我们在 html 里面有一个图片上传控件:

注意这个 accept=”image/*” 非常重要,它指定了上传的是图片,在移动端的时候会关联到系统的弹窗选择类型等问题,务必加上。

然后,问题是,我们在没有提交这个表单到服务器之前,有没有办法把图片的内容读取出来呢?

看似简单,都是客户端的文件,应该是可以的,但在之前确实没什么好办法,但是自从我们有了 html5

例子说明问题

复制代码

简要说明

简单来说整个操作设计如下几步:

通过 的 change 事件触发事件,并且获取 event 对象;

通过 event 对象获取上传的文件的 js 对象 file ;

通过 window.url 工具从 file 对象生成一个可用的 url;

把这个 url 置入使用;

*释放这个 url 的伺服

关键点:

对于同一个 file ,每次调用 url.createobjecturl 的时候,都会重新生成一个不同的 url;

调用 url.createobjecturl 的时候,浏览器自动在内存中开辟空间,用于伺服这个 url,也就是使得这个 url 可以请求成功;

如果调用了 url.revokeobjecturl(imgurl); 之后,这个伺服就会关掉,再请求这个 url 就会 404;

这一切都是客户端的事情,服务器端对此一无所知,包括你选择的这个图;

这个 imgurl 大概是这个样子:blob:http%3a//localhost%3a8000/22cc97d5-5e46-4d87-9df4-c3e8c0aa72bb

继续阅读