刘作权博客
火华
HTML5拖拽文件上传
2014-08-20 23:10:08   阅读945次


bg.png

在HTML5中,使用DataTransfer对象中提供的方法,可以实现浏览器与其他应用程序之间文件的拖动。

虽然HTML4之前的版本也支持拖放数据的操作,但仅局限于浏览器中,不支持浏览器之外的数据。


来个拖放上传图片的例子。    

Html部分:

<div class="content">
    <form>
        <div class="drag" ondrop = "dropFile(event)" ondragenter = "return false" ondragover = "return false">
        <span class="spn-img" id="spn-img"></span>
        </div>
    </form>
</div>


    Css部分:

   * {margin: 0; padding: 0;}
.content {margin:50px auto; width: 600px; border: 1px solid #ccc; padding: 20px;}
.content .drag {width: 596px; min-height: 300px; background: url(bg.png) no-repeat center center; border: 2px dashed #666;}
.spn-img img {max-width: 596px;}

    Js部分:

var fileUploadPreview = function (aFile) {
    if (typeof FileReader == "undefined") {
        alert("浏览器不支持");
    }
    var i;
    for (i = 0; i < aFile.length; i++) {
        var tmp = aFile[i];
        var reader = new FileReader();
        reader.readAsDataURL(tmp);
        reader.onload = (function (f) {
            return function (e) {
                document.getElementById("spn-img").innerHTML += "<img src=""+e.target.result+"" title=""+f.name+"">";
            }
        })(tmp)
    }
}
       
var dropFile = function (e) {
    fileUploadPreview(e.dataTransfer.files);
    e.stopPropagation();
    e.preventDefault();
}

图片过宽时会被自动缩小的虚线框宽度,虚线框高度自动。

明天把它做出来实现到一个页面在上传,留住他!



-----------------------------------------------------
转载请注明来源此处
原地址:#

-----网友评论----
暂无评论
-----发表评论----
微网聚博客乐园 ©2014 blog.mn886.net 鲁ICP备14012923号   网站导航