请选择 进入手机版 | 继续访问电脑版

猫先森网络资源站

 找回密码
 立即注册
查看: 663|回复: 134

[HTML/Xhtml] HTML5拖拽文件上传的示例代码

  [复制链接]
等级头衔

等級:论坛元老

Rank: 8Rank: 8

积分成就
积分
2956
金钱
45
人气
45
贡献
2911
主题
2911
精华
0
猫币
0
违规
0
注册时间
2021-1-14
最后登录
2021-1-14

快捷版块
版块
网站源码
版块
游戏源码
版块
商业源码
版块
SEO新闻
版块
SEO教程
版块
SEO程序
功能
猫币提现

发表于 2021-3-4 15:48:33 | 显示全部楼层 |阅读模式
这篇文章主要介绍了HTML5拖拽文件上传的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
                                       
                                               
                                               
                                       
                                       
                                                上传文件
HTML5新增了文件API,提供客户端本地操作文件的可能.
我们可以通过file表单或拖放操作选择文件,还可以通过JavaScript读取文件的名称、大小、类型、和修改时间.
file类型的input表单新增了files属性,保存我们上传文件的信息,如果要实现多文件上传,可以设置input的multiple属性.
可以使用accept属性规定文件上传的MIME类型 例如’image/jpeg’


        
            请选择文件
            
        
        
            读取文件信息
        



页面拖拽操作
对于被拖拽的元素,HTML5增加了三个事件用于监听拖拽的过程

   
  • dragstart 拖拽开始
       
  • drag 正在拖拽
       
  • dragend 拖拽结束



       
       


    想要拖拽元素,必须设置draggable属性
    页面默认的动作是拖拽后回到原位
    在拖动阶段,我们可以存储被拖动元素的属性或者状态到事件对象的dataTransfer中,如果出现跳转,则是浏览器默认的事件被触发,我们需要使用e.preventDefault()来阻止默认事件。
    投放区的事件
    对于被拖的元素而言,拖向何处则为投放区,投放区的事件如下:

       
  • dragenter 被拖放元素进入
       
  • dragover 被拖放元素移动
       
  • dragleave 被拖放元素离开



       
       


    而drop则是监听被拖拽物拖拽到投放区并松开鼠标的事件,他可以接收到dataTransfer中的数据,所以我们的页面内拖拽可以写成如下效果:


        *{
            box-sizing: border-box;
        }

       
       
            第一个
            第二个
       



       
  • 对于谷歌浏览器,e.dataTransfer.setData(key,value)会导致拖拽到投放区域外的时候浏览器默认搜索设置的值。如果需要,我们可以屏蔽它
       
  • 对于火狐浏览器,没有e.dataTransfer.setData(key,value)还不行。我们可以直接设置键值对为null,"";
       
  • 最新版本的谷歌和火狐浏览器没有发现问题
       
  • drop事件并不能直接触发,因为默认的松开鼠标我们的拖拽物会返回原来的位置,并不会掉落,所以我们应该阻止投放区域的默认事件.

    拖拽文件上传
    经过观察,事件对象中的dataTransfer也存在files属性,我们可以用熟悉的方法上传拖拽进来的文件:


       


    然后做Ajax文件上传即可

    one.ondrop = function(e) {
        e.preventDefault()
        var file = e.dataTransfer.files[0];
        var formData = new FormData();
        formData.append("aa", file);
        var xml = new XMLHttpRequest();
        xml.open("post", url, false);
        xml.send(formData);
    }

    到此这篇关于HTML5拖拽文件上传的示例代码的文章就介绍到这了,更多相关HTML5拖拽上传内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

  • 回复

    使用道具 举报

    等级头衔

    等級:新手上路

    Rank: 1

    积分成就
    积分
    0
    金钱
    0
    人气
    0
    贡献
    0
    主题
    0
    精华
    0
    猫币
    0
    违规
    0
    注册时间
    2021-1-14
    最后登录
    2021-1-14

    快捷版块
    版块
    网站源码
    版块
    游戏源码
    版块
    商业源码
    版块
    SEO新闻
    版块
    SEO教程
    版块
    SEO程序
    功能
    猫币提现

    发表于 2021-3-16 08:58:58 | 显示全部楼层
    楼上的很有激情啊!

    回复

    使用道具 举报

    等级头衔

    等級:新手上路

    Rank: 1

    积分成就
    积分
    0
    金钱
    1
    人气
    0
    贡献
    0
    主题
    0
    精华
    0
    猫币
    0
    违规
    0
    注册时间
    2021-1-14
    最后登录
    2021-4-13

    快捷版块
    版块
    网站源码
    版块
    游戏源码
    版块
    商业源码
    版块
    SEO新闻
    版块
    SEO教程
    版块
    SEO程序
    功能
    猫币提现

    发表于 2021-3-16 09:09:20 | 显示全部楼层
    顶顶更健康!

    回复

    使用道具 举报

    等级头衔

    等級:新手上路

    Rank: 1

    积分成就
    积分
    0
    金钱
    0
    人气
    0
    贡献
    0
    主题
    0
    精华
    0
    猫币
    0
    违规
    0
    注册时间
    2021-1-14
    最后登录
    2021-1-14

    快捷版块
    版块
    网站源码
    版块
    游戏源码
    版块
    商业源码
    版块
    SEO新闻
    版块
    SEO教程
    版块
    SEO程序
    功能
    猫币提现

    发表于 2021-3-16 18:29:55 | 显示全部楼层
    太邪乎了吧?

    回复

    使用道具 举报

    等级头衔

    等級:新手上路

    Rank: 1

    积分成就
    积分
    2
    金钱
    0
    人气
    0
    贡献
    1
    主题
    1
    精华
    0
    猫币
    1
    违规
    0
    注册时间
    2021-1-14
    最后登录
    2021-1-14

    快捷版块
    版块
    网站源码
    版块
    游戏源码
    版块
    商业源码
    版块
    SEO新闻
    版块
    SEO教程
    版块
    SEO程序
    功能
    猫币提现

    发表于 2021-3-16 18:47:21 | 显示全部楼层
    我裤子脱了,纸都准备好了,你就给我看这个?

    回复

    使用道具 举报

    等级头衔

    等級:新手上路

    Rank: 1

    积分成就
    积分
    0
    金钱
    0
    人气
    0
    贡献
    0
    主题
    0
    精华
    0
    猫币
    0
    违规
    0
    注册时间
    2021-1-14
    最后登录
    2021-1-14

    快捷版块
    版块
    网站源码
    版块
    游戏源码
    版块
    商业源码
    版块
    SEO新闻
    版块
    SEO教程
    版块
    SEO程序
    功能
    猫币提现

    发表于 2021-3-16 18:47:59 | 显示全部楼层
    一口气看完了,我要下去回味回味了!

    回复

    使用道具 举报

    等级头衔

    等級:新手上路

    Rank: 1

    积分成就
    积分
    0
    金钱
    1
    人气
    0
    贡献
    0
    主题
    0
    精华
    0
    猫币
    0
    违规
    0
    注册时间
    2021-1-14
    最后登录
    2021-4-13

    快捷版块
    版块
    网站源码
    版块
    游戏源码
    版块
    商业源码
    版块
    SEO新闻
    版块
    SEO教程
    版块
    SEO程序
    功能
    猫币提现

    发表于 2021-3-17 09:13:01 | 显示全部楼层
    脚本之家楼主是好人!

    回复

    使用道具 举报

    等级头衔

    等級:新手上路

    Rank: 1

    积分成就
    积分
    0
    金钱
    0
    人气
    0
    贡献
    0
    主题
    0
    精华
    0
    猫币
    0
    违规
    0
    注册时间
    2021-1-14
    最后登录
    2021-1-14

    快捷版块
    版块
    网站源码
    版块
    游戏源码
    版块
    商业源码
    版块
    SEO新闻
    版块
    SEO教程
    版块
    SEO程序
    功能
    猫币提现

    发表于 2021-3-17 16:14:06 | 显示全部楼层
    脚本之家楼主给脑残下了定义!

    回复

    使用道具 举报

    等级头衔

    等級:新手上路

    Rank: 1

    积分成就
    积分
    0
    金钱
    0
    人气
    0
    贡献
    0
    主题
    0
    精华
    0
    猫币
    0
    违规
    0
    注册时间
    2021-1-14
    最后登录
    2021-1-14

    快捷版块
    版块
    网站源码
    版块
    游戏源码
    版块
    商业源码
    版块
    SEO新闻
    版块
    SEO教程
    版块
    SEO程序
    功能
    猫币提现

    发表于 2021-3-17 16:23:36 | 显示全部楼层
    吹牛的人越来越多了!

    回复

    使用道具 举报

    等级头衔

    等級:新手上路

    Rank: 1

    积分成就
    积分
    0
    金钱
    0
    人气
    0
    贡献
    0
    主题
    0
    精华
    0
    猫币
    0
    违规
    0
    注册时间
    2021-1-14
    最后登录
    2021-1-14

    快捷版块
    版块
    网站源码
    版块
    游戏源码
    版块
    商业源码
    版块
    SEO新闻
    版块
    SEO教程
    版块
    SEO程序
    功能
    猫币提现

    发表于 2021-3-17 16:27:19 | 显示全部楼层
    帖子很有深度!

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表