HTML5图片上传预览
HTML5实现图片的上传预览,需要使用FileReader对象。
FileReader: The FileReader object lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read.
也就是说,使用FileReader对象先读取用户需要上传的图片,这个时候,图片是保存在浏览器中的,然后通过设置img元素的src,来预览图片,方法很简单。
在使用FileReader时需要先弄明白其Event handlers和方法。
Event handlers
| Event handler | 描述 |
|---|---|
| FileReader.onabort | A handler for the abort event. This event is triggered each time the reading operation is aborted. |
| FileReader.onerror | A handler for the error event. This event is triggered each time the reading operation encounter an error. |
| FileReader.onload | A handler for the load event. This event is triggered each time the reading operation is successfully completed. |
| FileReader.onloadstart | A handler for the loadstart event. This event is triggered each time the reading is starting. |
| FileReader.onloadend | A handler for the loadend event. This event is triggered each time the reading operation is completed (either in success or failure). |
| FileReader.onprogress | A handler for the progress event. This event is triggered while reading a Blob content. |
Metchods
| Method | 描述 |
|---|---|
| FileReader.abort() | Aborts the read operation. Upon return, the readyState will be DONE. |
| FileReader.readAsArrayBuffer() | Starts reading the contents of the specified Blob, once finished, the result attribute contains an ArrayBuffer representing the file's data. |
| FileReader.readAsBinaryString() | Starts reading the contents of the specified Blob, once finished, the result attribute contains the raw binary data from the file as a string. |
| FileReader.readAsDataURL() | Starts reading the contents of the specified Blob, once finished, the result attribute contains a data: URL representing the file's data. |
| FileReader.readAsText() | Starts reading the contents of the specified Blob, once finished, the result attribute contains the contents of the file as a text string. |
所以只需要使用readAsDataURL()方法读取图片,绑定FileReader的onload事件,将读取的result中的url设置到img的src上
<div><input id="upload" type="file"></div>
<div><img id="pic" src=""></div>
<script>
var reader = new FileReader();
reader.onload = function(e){
document.getElementById('pic').setAttribute('src', e.target.result);
};
function readURL(input) {
if (input.files && input.files[0]) {
reader.readAsDataURL(input.files[0]);
}
};
document.getElementById('upload').onchange = function(){
readURL(this);
};
</script>
HTML5图片上传预览的更多相关文章
- HTML5 图片上传预览
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...
- [javascript]——移动端 HTML5 图片上传预览和压缩
在开发移动端web网页中,我们不可避免的会遇到文件上传的功能,但由于手机图片尺寸太大,上传时间过长导致用户体验太差,就需要在上传前对图片进行一定的压缩. 在代码之前,有必要先了解我们即将使用到的几个A ...
- html5 图片上传 预览
<html><body><fieldset> <legend>测试</legend> <div class="form-gr ...
- 用html5文件api实现移动端图片上传&预览效果
想要用h5在移动端实现图片上传&预览效果,首先要了解html5的文件api相关知识(所有api只列举本功能所需): 1.Blob对象 Blob表示原始二进制数据,Html5的file对象就继 ...
- 兼容好的JS图片上传预览代码
转 : http://www.codefans.net/articles/1395.shtml 兼容好的JS图片上传预览代码 (谷歌,IE11) <html xmlns="http:/ ...
- js实现图片上传预览及进度条
原文js实现图片上传预览及进度条 最近在做图片上传的时候,由于产品设计的比较fashion,上网找了比较久还没有现成的,因此自己做了一个,实现的功能如下: 1:去除浏览器<input type= ...
- html 图片上传预览
Html5 upload img 2012年12月27日 20:36 <!DOCTYPE HTML> <html> <head> <meta http-equ ...
- 模拟QQ心情图片上传预览
出于安全性能的考虑,目前js端不支持获取本地图片进行预览,正好在做一款类似于QQ心情的发布框,找了不少jquery插件,没几个能满足需求,因此自己使用SWFuplad来实现这个图片上传预览. 先粘上以 ...
- signup图片上传预览经常总结
html <html> <head> <meta charset="utf-8" /> <meta http-equiv="X- ...
随机推荐
- OpenLayers学习笔记3——使用jQuery UI美化界面设计
PC端软件在开发是有较多的界面库能够选择,比方DevExpress.BCG.DotNetBar等,能够非常方便快捷的开发出一些炫酷的界面,近期在学习OpenLayers.涉及到web前端开发,在设计界 ...
- spark视频教程免费下载
下载地址:点我下载 其它章节陆续上传中,Hadoop视频教程正在整理中,敬请关注.
- Oracle配置网络服务
对于Oracle来说.不管是连接本地数据库还是远程连接server数据库,都须要在本机配置网络服务才可连接. 大家可能不明确为什么. 先拿SqlServer来说.SqlServer在连接数据库的时候仅 ...
- ClassNotFoundException和NoClassDefFoundError的差别
正如它们的名字所说明的:NoClassDefFoundError是一个错误(Error),而ClassNOtFoundException是一个异常,在Java中错误和异常是有差别的,我们能够从异常中恢 ...
- Blur 算法 (Unity 5.0 Shader)
一:简单 Blur 算法 一个像素的颜色值由其邻近的若干像素和自己的颜色值的平均值重新定义,以此达到模糊的效果. 如下图,红色的像素点的值将由它和它周围的24个像素的平均值重新定义.计算的范围一般由一 ...
- ES TransportClient demo
import java.net.InetAddress; import java.net.UnknownHostException; import org.elasticsearch.action.b ...
- Anaconda安装及PyCharm环境配置
1. Anaconda下载 Anaconda 官方下载链接: https://www.continuum.io/downloads 根据自己的系统选择下载32位还是64位. 2. 进入下载目录 如果没 ...
- 三种启动SQLSERVER服务的方法(启动sqlserver服务器,先要启动sqlserver服务)
1.后台启动 计算机-管理-服务和应用程序 2.SQL SERVER配置管理器 3.在运行窗口中使用命令进行启动:
- HD-ACM算法专攻系列(22)——Max Sum
问题描述: AC源码: 此题考察动态规划,解题思路:遍历(但有技巧),在于当前i各之和为负数时,直接选择以第i+1个为开头,在于当前i各之和为正数时,第i个可以不用作为开头(因为前i+1个之和一定大于 ...
- Web api 测试 工具WebApiTestClient
1.打开Nuget 安装 WebApiTestClient 2.在HelpPageConfig.cs 里面添加这段文字 config.SetDocumentationProvider(new Xml ...