Html5 拖放上传图片

Html5 拖放上传图片

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

<!DOCTYPE HTML>  
<html>  
<head>  
    <meta charset="utf-8">  
    <title>HTML5 浏览器拖放 | HTML5 Drag and drop</title>  
    <style>  
        #section{font-family: "Georgia", "微软雅黑", "华文中宋";}  
        .container{display:inline-block;min-height:200px;min-width:360px;color:#f30;padding:30px;border:3px solid #ddd;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;}  
        .preview{max-width:360px;}  
        #files-list{position:absolute;top:0;left:500px;}  
        #list{width:460px;}  
        #list .preview{max-width:250px;}  
        #list p{color:#888;font-size:12px;}  
        #list .green{color:#09c;}  
    </style>  
</head>  
<body>  
  
    <div id="section">  
        <p>把你的图片拖到以下的容器内:</p>  
  
        <div id="container" class="container">  
              
        </div>  
        <div id ="files-list">  
            <p>已经拖进过来的文件:</p>  
            <ul id="list"></ul>  
        </div>  
    </div>  
  
    <script>  
      
    if (window.FileReader) {  
  
        var list = document.getElementById('list'),  
            cnt = document.getElementById('container');  
  
        // 推断是否图片  
        function isImage(type) {  
            switch (type) {  
            case 'image/jpeg':  
            case 'image/png':  
            case 'image/gif':  
            case 'image/bmp':  
            case 'image/jpg':  
                return true;  
            default:  
                return false;  
            }  
        }  
  
        // 处理拖放文件列表  
        function handleFileSelect(evt) {  
            evt.stopPropagation();  
            evt.preventDefault();  
  
            var files = evt.dataTransfer.files;  
  
            for (var i = 0, f; f = files[i]; i++) {  
  
                var t = f.type ? f.type : 'n/a',  
                    reader = new FileReader(),  
                    looks = function (f, img) {  
                        list.innerHTML += '<li><strong>' + f.name + '</strong> (' + t +  
                            ') - ' + f.size + ' bytes<p>' + img + '</p></li>';  
                        cnt.innerHTML = img;  
                    },  
                    isImg = isImage(t),  
                    img;  
  
                // 处理得到的图片  
                if (isImg) {  
                    reader.onload = (function (theFile) {  
                        return function (e) {  
                            img = '<img class="preview" src="' + e.target.result + '" title="' + theFile.name + '"/>';  
                            looks(theFile, img);  
                        };  
                    })(f)  
                    reader.readAsDataURL(f);  
                } else {  
                    img = '"o((>ω< ))o"。你传进来的不是图片!!';  
                    looks(f, img);  
                }  
  
            }  
  
        }  
          
        // 处理插入拖出效果  
        function handleDragEnter(evt){ this.setAttribute('style', 'border-style:dashed;'); }  
        function handleDragLeave(evt){ this.setAttribute('style', ''); }  
  
        // 处理文件拖入事件,防止浏览器默认事件带来的重定向  
        function handleDragOver(evt) {  
            evt.stopPropagation();  
            evt.preventDefault();  
        }  
          
        cnt.addEventListener('dragenter', handleDragEnter, false);  
        cnt.addEventListener('dragover', handleDragOver, false);  
        cnt.addEventListener('drop', handleFileSelect, false);  
        cnt.addEventListener('dragleave', handleDragLeave, false);  
          
    } else {  
        document.getElementById('section').innerHTML = '你的浏览器不支持啊,同学';  
    }  
      
    </script>  
  
      
</body>  
</html>  

版权声明:本文博客原创文章。博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117457.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • USB转RS485串口电路设计「建议收藏」

    USB转RS485串口电路设计「建议收藏」USB转串口芯片的串口信号一般为TTL/CMOS电平,在实现半双工RS485串口时需要外接485电平转换芯片,设计中需要有信号来控制485转接芯片的发送和接收使能端,建议选择自带485控制引脚的转接芯片(如CH340/CH342系列芯片的TNOW引脚),该引脚默认为低电平,当串口处于发送状态时会自动拉高处于有效状态,发送完成再恢复低电平。同理,可以延伸到其他应用场景,如单片机串口转485电路设计中可以使用GPIO口来控制485转接芯片的发送和接收使能。以MAX485为例:1.DE..

  • 史上最全正则表达式

    史上最全正则表达式

  • java实现redis分布式锁实例[通俗易懂]

    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里以跳转到教程java实现redis分布式锁应用场景:多并发特点:分布式锁、动态解决由redis宕机产生死锁的情况,基于wait()、notify()有效提高效率节省资源Junit类,其中testTryLock包含多线…

  • VUE双向绑定原理_vue的数据绑定怎么实现

    VUE双向绑定原理_vue的数据绑定怎么实现烂大街原理:数据劫持+发布订阅者模式(obect.defineProperty())……..(此处省略8888个字节)。话不多说上代码HTML:<divid=”app”> <div> <divv-text=”myText”></div> <divv-text=”myBox”></d…

  • Java 8 Stream Collectors groupingBy 示例

    Java 8 Stream Collectors groupingBy 示例展示如何使用Java8Stream Collectors进行分组,计数,总和和排序List分组,计数和排序1.1分组List并显示其总数。Java8Example1.javapackagecom.mkyong.java8;importjava.util.Arrays;importjava.util.List;importjava.util.Map;

  • mybatis:Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource[通俗易懂]

    mybatis:Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource[通俗易懂]整天写业务逻辑代码,但偶尔整个配置搞死人(根基不牢),有些细节知识还是欠缺,遇到问题总是搞的很烦躁,通过这篇博文将自己遗忘的知识总结起来。_____________________________________________________________________________________________先贴错误:看起来很简单,按照错误排查一下,就ok,但硬生生搞了半天,还搞的烦躁,这么简单,咋找不到问题呢。分析:看错误可知,找不到mapper文件。查看myb.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号