HTML5拖拽——将本地文件拖拽到网页中显示

 HTML5标准中的提供的用于文件输入输出(I/O)的对象 File:                       代表一个文件对象 FileList:                   代表一个文件列表,类数组对象 FileReader                  用于从文件中提取内容 FileWrite                   用于向文件中写入类容

这些对象需要在 H5的拖拽事件中通过 e.dataTransfer  来访问和获取

完成效果如下:

Data URL给了我们一种很巧妙的将图片“嵌入”到HTML中的方法。跟传统的用img标记将服务器上的图片引用到页面中的方式不一样,在Data URL协议中,图片被转换成base64编码的字符串形式,并存储在URL中,冠以mime-type。

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #container {
            border: 1px solid #aaa;
            padding: 10px;
            margin: 10px;
            width: 500px;
            min-height: 300px;
        }
    </style>
</head>
<body>
<h3>请拖拽您的头像到下方区域</h3>
<div id="container">

</div>
<script>
    /*拖拽的目标对象------ document 监听drop 并防止浏览器打开客户端的图片*/
    document.ondragover = function (e) {
        e.preventDefault();  

  //只有在ondragover中阻止默认行为才能触发 ondrop 而不是 ondragleave
    };
    document.ondrop = function (e) {
        e.preventDefault(); 

   //阻止 document.ondrop的默认行为  *** 在新窗口中打开拖进的图片
    };
    /*拖拽的源对象----- 客户端的一张图片 */
    /*拖拽目标对象-----div#container  若图片释放在此元素上方,则需要在其中显示*/
    container.ondragover = function (e) {
        e.preventDefault();
    };
    container.ondrop = function (e) {
        console.log(e.dataTransfer);
//        chrome 此处的显示有误
        var list = e.dataTransfer.files;
        var f = list[0];
//            console.log(f);
        var reader = new FileReader();       //读取器对象
//            读取指定文件的内容 作为“数据URL”
        reader.readAsDataURL(f);
//            当客户端文件读取完成 触发onload事件
        reader.onload = function () {
//            console.log(reader.result);
            var img = new Image();
            img.src = reader.result;
            container.appendChild(img);

}

    };
                                
</script>
</body>
</html>

  

遇到的坑如下:  CHROME显示错误

				
时间: 2024-08-06 07:30:35

HTML5拖拽——将本地文件拖拽到网页中显示的相关文章

如何在浏览器网页中显示word文件内容

如何在浏览器网页中显示word文件内容 把word文件读到byte[]中,再Response.OutputStream.Write(bytes)到客户端去 Page_Load事件中写: //FileStream   fs   =   new   FileStream("c:\\1.doc",   FileMode.Open,   FileAccess.Read);  FileStream fs = new FileStream(Server.MapPath("files\\1

git删除了本地文件,从远程仓库中恢复

在本地删除了文件,使用git pull,无法从远程项目中拉取下来 具体操作 查看项目的状态,会显示出你删除的数据 git status 进入被删除的文件的目录下,假设删除的文件名为 test.txt 然后进行下列操作,可以成功找回: git reset HEAD test.txt git checkout test.txt 原文地址:https://www.cnblogs.com/luckyqingmu/p/12195511.html

Office 2010 中打开多个Excel文件只能在同一窗口中显示的问题

安装Microsoft Office 2010 的朋友们可能会发现,当你打开多个Excel文件时,想要将几个文件对比参考时,发现无法将几个窗口并排放置,几个Excel文件是共享一个窗口的. 通过上网寻求帮助,找到了一种方法,可以使多个Excel文件在多个独立的窗口中打开. 注: 此方法在Windows 7及Windows XP下均测试有效. Start: 打开"运行"窗口(快捷键:Win + R),输入regedit编辑注册表. 定位到[HKEY_CLASSES_ROOT\Excel.

在网页中显示PDF文件及vue项目中弹出PDF

1.<embed width="800" height="600" src="test_pdf.pdf"> </embed>  <embed v-show="pdfShow" width="800" height="600" src="../../../public/data/significant.pdf"> </embed

python中关于本地文件的API

Python中关于本地文件的API */--> Python中关于本地文件的API #TITLE: python中关于本地文件的API #KEYWORDS: Python,文件,路径 #DATE: Fri Jul 1 21:24:04 2016 在Python中,文件操作主要来自os模块,主要方法如下: 函数 描述 os.listdir(dirname) 列出dirname下的目录和文件 os.getcwd() 获得当前工作目录 os.curdir 返回当前目录('.') os.chdir(di

前端用js获取本地文件的内容

这里要写成input的形式 调用upload函数 传递的参数就表示所选的文件<input type="file" onchange="upload(this)" /> //前端读取本地文件的内容 下面代码中的this.result即为获取到的内容 function upload(input) { //支持chrome IE10 if (window.FileReader) { var file = input.files[0]; filename = f

在InternetExplorer.Application中显示本地图片

忘记了,喜欢一个人的感觉 Demon's Blog  ?  程序设计  ?  在InternetExplorer.Application中显示本地图片 ? 对VBS效率的再思考--处理二进制数据 WordPress判断用户是否登录 ? 在InternetExplorer.Application中显示本地图片 标题: 在InternetExplorer.Application中显示本地图片作者: Demon链接: http://demon.tw/programming/internetexplor

在 PHP 网页中包含文件 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

如果多个文件中有重复的代码,则可以将这部分代码写到一个文件中去,然后在需要的地方把这个文件包含进来即可.注意在这个文件中,只需要这些重复的代码,而不需要其它的格式或者什么的,文件名可以随便起,后缀可要可不要. 通过使用包含文件,您可以在自己的网站中的多个网页上轻松包含相同的内容.所谓包含文件是指当网页在浏览器中呈现时动态地包含在网页中的文件. 包含文件可以简化站点的管理工作.例如,您可以创建网站中多个网页上所要包含的网页横幅.网站信息块或菜单之类的内容.这样,当需要更改这些内容时,只需在单个文件

HTML5 02. 多媒体控件、拖拽事件、历史记录、web存储、应用程序缓存、地理定位、网络状态

多媒体 video:是行内块(text-align: center; 对行内块适用) <figure></figure>: 多媒体标签 : <figcaption></figcaption>: 多媒体标题 方法: load() 加载.play()播放.pause()暂停 属性: currentTime 视频播放的当前进度. duration:视频的总时间. paused:视频播放的状态 事件:   oncanplay:事件在用户可以开始播放视频/音频(aud