• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 如何使用H5做出上传图片功能

如何使用H5做出上传图片功能

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含html5,图片,上传等相关知识,匿名希望在学习及工作中可以帮助到您
这次给大家带来如何使用H5做出上传图片功能,如何H5做出上传图片功能的注意事项有哪些,下面就是实战案例,一起来看一下。

前几日做了项目,其中有一个模块涉及到上传图片至服务器。今天抽空整理了下,发现越整理涉及的知识点越多,下面例子有参考百度的搜图。

知识点:input file、base64、FileReader、canvas压缩、blob、btoa编码和atob解码、FormData。

html dom节点:

<input type="file">

默认可以选择一个文件。需要上传多张。可以增加multiple="true" 属性。一般使用opacity:0;将默认样式隐藏,然后再重新写其样式。

1、创建对象

var fileReader = new FileReader();

2、判断浏览器是否兼容----ie8下不支持

if( window.FileReader )

3、状态常量

常量名值描述
EMPTY0为开始读取文件
LOADING1文件读取中
DONE2文件读取完成

在下面例子中,可以分别读取当前状态。

4、属性

属性名描述
error读取文件时发生错误
readyState当前fileReader对象的状态,为上述状态常量的一个
result读取到的内容

5、方法

方法名参数描述
abort无中止读取,在非LOADING状态时调用会抛出异常
readAsArrayBufferblob/file读取为数组,在result中有一个ArrayBuffer对象为读取的内容
readAsBinaryStringblob/file读取为二进制,在result中有读取文件的原始二进制
readAsDataUrlblob/file读取为dataUrl,在result中有data:url格式的字符串表示读取的内容
readAsTexxblob/file , [encoding]读取为文本,在result中字符串表示读取的内容

6、事件处理

事件描述
onabort中断时触发
onerror出错时触发
onload读取成功时触发
onloadend读取完成时触发(不论成功是否)
onloadstart读取开始时触发
onprocess读取中触发

BASE64:

我们用chrome打开一张图片,在resources里面显示的就是图片的base编码(实际上base编码比原图片稍大)

图片的base64编码也就是将一张图片编码成一个字符串,我们可以用这个字符串给img标签的src赋值,这样我们就可以看到这张图片。

如何编写:

在html中:

<img src="data:image/gif;base64,R0lGODlhAwADAIABAL6+vv///yH5BAEAAAEALAAAAAADAAMAAAIDjA9WADs=">

在css中:

background-image:url(data:image/gif;base64,R0lGODlhBAABAIABAMLBwfLx8SH5BAEAAAEALAAAAAAEAAEAAAICRF4AOw==);

优缺点:

优点:1、减少了http请求;2、可以被gzip;3、没有跨域问题;4、无需考虑在更新图片时缓存问题。

缺点:1、ie8以下不支持;2、不论是写在css文件还是html文件中,增加了文件的大小;3、图片大了之后,程序员编码相当困难;

应用:

根据实际需求来选择base64显示图片,或者选择css sprite,或者直接使用png等

一般使用场景:很少被更新,实际尺寸很小,在系统中大量使用。

canvas压缩:

在移动应用场景中,用户上传的图片一般很大,会导致上传时间过长而失败,既浪费时间也浪费流量,更影响用户体验。我们可以使用canvas的drawImage方法的图形裁剪功能。

1、新建image对象,给其src复制base64值,在其监听onload事件;

2、在onload事件方法中新建canvas对象,获取上下文context;

3、设置裁剪比例,调用drawImage方法填充图片。

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2018-12-03有没有朋友现在在涉足基于WEBRTC、HTML5的视频通话?
  • 2018-12-03HTML5学习笔记(一)-认识HTML5
  • 2018-12-03作为一个前端工程师,是往node方面转,还是往HTML5方面转?
  • 2018-12-03HTML5头部 meta介绍
  • 2017-08-06使用HTML5的File实现base64和图片的互转
  • 2018-12-03什么是HTML5?HTML5使用详解
  • 2018-12-03如何实现jquery回车登录效果
  • 2018-12-03Html5中video标签的用法:如何自动填充满父div标签
  • 2018-12-03Html5 Canvas初探学习笔记(1)-画一个矩形
  • 2018-12-03关于HTML5音频与视频的详细介绍

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • HTML5组件Canvas实现图像灰度化(步骤+实例效果)
    • 使用phonegap获取位置信息的实现方法
    • 网页中的电话号码如何实现一键直呼效果_附示例_html5教程技巧
    • 关于知乎回答问题编辑框用Ctrl+V 粘贴图片是如何实现的详解
    • html5适合移动应用开发的12大特性
    • 浅谈基于HTML5的在线视频播放方案_html5教程技巧
    • HTML5 canvas画布详解(四)
    • HTML5新增的Css选择器、伪类介绍_html5教程技巧
    • 如何在 PC 机上测试移动端的网页?
    • HTML5的hidden属性兼容老浏览器的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有