H5完成多图片上传的实例详解


本文摘自PHP中文网,作者Y2J,侵删。

这篇文章主要介绍了基于HTML5实现多张图片上传功能,在单张图片上传的基础上实现多张图片上传功能,感兴趣的小伙伴们可以参考一下

图片上传之前也有写过,不过是单张上传的,最近有个业务需求是需要多张上传的,于是乎从新改写了一下

HTML结构:


XML/HTML Code复制内容到剪贴板

1

2

3

4

<p class="container"

    <label>请选择一个图像文件:</label

    <input type="file" id="file_input" multiple/> 

</p>

顺便说下这个上传的主要逻辑:

?用input标签并选择type=file,记得带上multiple,不然就只能单选图片了

?绑定好input的change时间,

?重点就是如何处理这个change事件了,使用H5新的FileReader接口读取文件并打成base64编码,之后的事就是与后端同学交互着玩啦

JS代码:


JavaScript Code复制内容到剪贴板

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

window.onload = function(){  

        var input = document.getElementById("file_input");  

        var result,p;  

     

        if(typeof FileReader==='undefined'){  

            result.innerHTML = "抱歉,你的浏览器不支持 FileReader";  

            input.setAttribute('disabled','disabled');  

        }else{  

            input.addEventListener('change',readFile,false);  

        }<br>     //handler  

        function readFile(){  

            for(var i=0;i<this.files.length;i++){  

                if (!input['value'].match(/.jpg|.gif|.png|.bmp/i)){  //判断上传文件格式  

                    return alert("上传的图片格式不正确,请重新选择")<br>          }  

                var reader = new FileReader();  

                reader.readAsDataURL(this.files[i]);  

                reader.onload = function(e){  

                    result = '<p id="result"><img src="'+this.result+'" alt=""/></p>';  

                    p = document.createElement('p');  

                    p.innerHTML = result;  

                    document.getElementById('body').appendChild(p);    //插入dom树                      <br>          }  

            }  

        }  

    }

上传多张图片难道就这样实现了吗0.0

阅读剩余部分

相关阅读 >>

HTML5之全面解析tabindex属性

h5的localstorage如何在本地存储刷新值

h5怎样做出日历校验功能

HTML5移动端-viewport的详解

HTML5新知识

h5的filereader分布读取文件应该如何使用以及其方法简介

通过HTML5实现图片上传与预览功能

HTML5实践-使用css实现弹性视频的代码分享

h5如何做出碎片式的图片切换

用canvas实现简单的下雪效果(附代码)

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




打赏

取消

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

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

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

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

评论

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