废话不多说了,说一下本日给大家分享的是 html5上传图片。
我们是在移动端利用的,但是这个在pc上也通用兼容性我只在谷歌测试过。
之前一贯用的angular写的《用HTML5的File API做上传图片预览能》。
本日摒弃angular的东西分享一个html5 + js 图片上传案例。
那么本日还是按照一定的步骤来讲吧。

HTML 上传图片

HTML

第一步创建html,我们在页面中放置一个文件选择的input#upload(PS:偷

<div class=\"大众con4\"大众>\r <span class=\"大众btn upload\"大众>上传<input type=\"大众file\公众 class=\"大众upload_pic\"大众 id=\公众upload\"大众 /></span>\r </div>

上传图片操作html5Html5 上传图片 移动端PC端通用 jQuery

CSS

注:css 写的有些乱哈,看不懂的可以问我,或者直接自己写一下就ok。

.con4{\r width: 80%;\r height: auto;\r overflow: hidden;\r margin: 15% auto 0 auto;\r color: #FFFFFF;\r}\r.con4 .btn{\r width: 45%;\r height: 40px;\r line-height: 40px;\r text-align: center;\r background: #d8b49c;\r display: block;\r font-size: 16px;\r border-radius: 5px;\r}\r.upload{\r float: left;\r position: relative;\r}\r.upload_pic{\r display: block;\r width: 100%;\r height: 40px;\r position: absolute;\r left: 0;\r top: 0;\r opacity: 0;\r border-radius: 5px;\r}

Javascript

通过getElementById获取节点,判断浏览器的兼容性,对付不支持FileReader接口的浏览器将给出一个提示并禁用input,否则监听input的change事宜。

//获取上传按钮\rvar input1 = document.getElementById(\公众upload\"大众); \r \rif(typeof FileReader==='undefined'){ \r //result.innerHTML = \"大众抱歉,你的浏览器不支持 FileReader\"大众; \r input1.setAttribute('disabled','disabled'); \r}else{ \r input1.addEventListener('change',readFile,false); \r}

然后,当file_input的change事宜触发时,调用函数readFile。
在readFile中,我们首先获取file工具,然后通过file的type属性来检测文件类型,我们当然只许可选择图像类型的文件,然后我们new一个FileReader实例,并调用readAsDataURL方法来读取选中的图像文件,末了在onload事宜中,获取到成功读取的文件内容,并以插入一个img节点的办法显示选中的图片。

function readFile{ \r var file = this.files[0]; \r if(!/image\/\w+/.test(file.type)){ \r alert(\"大众文件必须为图片!
\"大众); \r return false; \r } \r var reader = new FileReader; \r reader.readAsDataURL(file); \r //当文件读取成功便可以调取上传的接口,想传哪里传哪里(PS: 你们可以把你们的靓照偷偷发给我!
)\r reader.onload = function(e){ \r var data = this.result.split(',');\r var tp = (file.type == 'image/png')? 'png': 'jpg';\r var a = data[1];\r //须要上传到做事器的在这里可以进行ajax要求\r ... ...\r }\r};

写到这里我们已经完成了图片上传的功能了,大家有兴趣的自己动手考试测验一下,不懂的地方或者我写错的地方一定要找我哦。

FileReader的方法和事宜参数/事宜描述方法abort中断读取readAsText(file, [encoding])将文件读取为文本该方法有两个参数,个中第二个参数是文本的编码办法,默认值为 UTF-8。
这个方法非常随意马虎理解,将文件以文本办法读取,读取的结果即是这个文本文件中的内容。
readAsBinaryString(file)将文件读取二进制码常日我们将它传送到后端,后端可以通过这段字符串存储文件readAsDataURL(file)将文件读取为DataURL将文件读取为一串Data URL字符串,将小文件以一种分外格式的URL地址直接读入页面。
小文件指图像与html等格式的文件。
事宜onabort数据读取中断时触发onerror数据读取出错时触发onloadstart数据读取开始时触发onload数据读取成功完成时触发onloadend数据读取完成时触发,无论成功失落败

祝大家学习愉快!
终于写完了估计还是有错别字的。
大家有不同见地的记得给我留言哦!
[小月博客]