首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HTML5 拖拽上传图片实例

,之所以选这个的原因就是,我很容易做扩展,它支持3种方式添加图片,一种拖拽上传,一种常规的选择文件上传,另外的就是添加网络图片。...它很巧妙的把三种上传模式整合到了一起,而且你可以用IE浏览器浏览下,如果不支持HTML5,是没有拖拽上传图片的提示的,如图:   拖拽上传最重要的就是js部分的代码,它实现了70%的功能,另外30%仅仅是把图片信息提交到后台...var fileList = e.dataTransfer.files; var img = document.createElement('img'); //检测是否是拖拽文件到页面的操作...主要实现代码是从“功能实现”开始的,这块具体为何这样操作,原理是什么,我就不多说了,大家可以参考下这篇文章:《人人网首页拖拽上传详解(HTML5 Drag&Drop、FileReader API、formdata...文章最开始提到,还有点击选择文件上传和网络图片,因为这2个不属于这次的主题范围内,就不说了。况且这2个功能实现起来都不麻烦。 demo下载

2.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    原生的文件拖拽上传

    老规矩先说需求:上传文件需要拖拽上传 正常来讲一个UI库就支持了 比如antd的uploads组件 但是考虑到设计图的差异太大了,所以需要自己来实现 也是很简单的: 直接上代码吧 这个代码中包括了上传s3...DOCTYPE html>             原生拖拽上传     <style...        width: 1050px;         min-height: 300px;       }                原生拖拽上传...     请拖拽您的头像到下方区域                 /*拖拽的目标对象------ document...事件         }       };       async function reader(file) {         // 这里能获取到拖拽过来的文件了         // 我这边是经过了一层

    91020

    文件上传 = 拖拽 + 多文件 + 文件

    比方说, 执行{多}文件上传 拖拽上传 针对文件夹内容上传 {多}文件上传 + 文件上传 但是呢,这些框架只是提供了上面的部分功能,而不是将上面的功能全部一网打尽。...所以,今天我们就来自己手搓一个「文件上传」。它所拥有的能力如下 支持{多}文件上传 拖拽上传 文件内容上传 {多}文件上传 + 文件上传 也就是说,我们的文件上传可以上传你本地的任何文件。...看这名字多气派,FullScreen,它支持全屏范围内拖拽。也就是说,不管你把文件拖拽到页面的哪个位置,都可以触发文件上传功能。 "全屏"? 按照SPA的尿性,那岂不是需要在一个路由的组件的根部。...只不过,文件拖拽我们可以通过拖拽进行处理。而文件{夹}上传需要一些操作来触发其功能。...上面的代码就是,不论是你拖拽还是文件{夹}上传,都会被存放到webFiles的state变量中。

    28710

    mvc文件上传支持批量上传拖拽以及预览,文件内容校验

    网站中的上传相信大家都不陌生,也算是一个小小的技术难点,尤其时在asp.net中,上传的一些大小限制以及上传的进度的控制,以及用户体验等方面,今天在这里分享一个在asp.net mvc模式下的文件上传,...可以对文件预览筛选,从客户端就过滤一些不适用的文件,而且界面效果还特别美观 如下是使用方式:或者直接参照代码写就可以 使用方式: 1.nuget:Install-Package bootstrap-fileinput...//按钮样式 dropZoneEnabled: true,//是否显示拖拽区域 //minImageWidth: 50, //图片的最小宽度...previewFileIcon: "", msgFilesTooMany: "选择上传文件数量..., }); //导入文件上传完成之后的事件 $("#txt_file").on("fileuploaded", function

    1.5K20

    js拖拽上传图片

    有时候,在开发中,需要遇到拖拽上传图片的需求,即从磁盘选中一张或多张图片,然后按着鼠标把图片拖动到页面上指定的区域,实现图片的上传。...这里我们就要先说说在 http 中传输文件的问题。起初http协议中没有上传文件方面的功能,直到rfc1867为http协议添加了这个功能。...当我们使用表单上传文件时,我们来查看他的Request headers,如下图: ?...发现在 multipart/form-data 后面有boundary以及一串字符,这是分界符,后面的一堆字符串是随机生成的,目的是防止上传文件中出现分界符导致服务器无法正确识别文件起始位置。...请求头的不同,对于上传文件的请求,contentType = multipart/form-data是必须的,而 post 则不是,毕竟 post 又不是只上传文件~。

    18.2K30

    HTML5实现大文件分片上传

    在网页中直接上传文件一直是个比较头疼的问题,一是上传时间长,中途一旦出错会导致前功尽弃;二是服务端配置复杂,要考虑接收超大表单和超时问题,如果是托管主机没准还改不了配置,默认只能接收小于4MB的附件...这么做的好处在于一旦上传失败只是损失一个分片而已,不用整个文件重传,而且每个分片的大小可以控制在4MB以内,服务端不用做任何设置就可适应。...常用的解决方案是RIA,以flex为例,通常是利用FileReference.load方法加载文件得到ByteArray,然后分片构造表单(flash的高版本不允许直接访问文件)。...好在现在有了HTML5,我们可以直接构造分片了,这是一个非常喜人的进步,但是有一个最大的缺陷就是,不支持IE啊,不支持IE啊,不支持IE啊。...计算每一片的起始与结束位置 var start = i * shardSize, end = Math.min(size, start + shardSize); //构造一个表单,FormData是HTML5

    1.1K10

    《大胖 • 小课》- 拖拽和剪贴板文件上传

    这是《大胖小课》栏目的专题一《说说文件上传那些事儿》的第5节-《实现文件拖拽和剪贴板上传》 专题已经更新章节: 《大胖 • 小课》- 我是这样理解文件上传原理的 《大胖 • 小课》- 写一个文件上传接口...《大胖 • 小课》- 不用 js 实现文件无刷新上传 《大胖 • 小课》- 玩玩多文件配多进度上传 拖拽上传 html5的出现,让拖拽上传交互成为可能,现在这样的体验也屡见不鲜,实现上也比较简单...主要是先定义好一个拖拽区域,从该拖拽区域的事件回调内得到文件的相关信息,前提是需要取消一些事件的默认行为,因为浏览器本身会自动打开或下载文件。 DEMO ?...说明 定义一个允许拖放文件的区域div.drop-box 取消drop 事件的默认行为e.preventDefault();,不然浏览器会直接打开文件拖拽区域绑定事件,鼠标在拖拽区域上 dragover..., 鼠标离开拖拽区域dragleave, 在拖拽区域上释放文件drop drop事件内获得文件信息e.dataTransfer.files HTML <div class="drop-box" id=

    93710

    js不借助后端,多文件拖拽压缩上传,支持选择文件

    在系统中上传文件时,需要支持多文件文件上传,并且需要在文件上传时需要将多文件压缩成zip包,下载的时候,直接下载zip包 听到这个需求,我的第一反应就是js应该没有强大吧,因为压缩和访问文件夹,涉及到了文件系统的读取和修改...: 1:用户选中文件文件夹后,获取文件对象, 2:遍历获取的文件对象 放入实例化的zip对象中 3:使用generateAsync()方法生成文件, 通过formdata提交到服务端 代码如下: 此案例支持拖拽上传多个文件.../assets/logo.png"> 文件压缩上传案例 <label name="myfile" for="myfile" style="display:block;width:200px...important } 这里说一下<em>拖拽</em><em>上传</em><em>文件</em>, 主要是用到的原生事件是这三个 ondrop ondragover ondragleave 加上prevent 可以防止<em>拖拽</em>过程...在ondragover的事件上可以处理<em>文件</em><em>拖拽</em>到了可放置的元素上,对用户 进行友好提示. ondrop 事件是<em>文件</em><em>拖拽</em>到了元素上,松开鼠标时触发, 这个时候可以通过事件拿到<em>拖拽</em>的<em>文件</em>列表 使用even.dataTransfer.files

    3.4K10

    文本域实现图片拖拽上传

    文件拖拽上传 相信你看到过不少文件拖拽上传的功能,很多论坛、社区比比皆是。所以今天就来操作一番。 Rovak/InlineAttachment 这款包就是专门实现拖拽上传的。 安装 将安装包下载下来。...php namespace App\Handlers; class ImageUploadHandler { // 只允许以下后缀名的图片文件上传 protected $allowed_ext...在自己的控制器中使用依赖注入的方式引入 public function uploadImage(Request $request, ImageUploadHandler $uploader) { // 判断是否有上传文件...[ 'error' => 'Error while uploading file' ]; } } } 这样就实现了图片拖拽上传了...如果我们的编辑器使用的是其他 Markdown 编辑器,同样我们要实现拖拽上传,继续使用 jQuery 是不能满足的。因此我们采用第二种方式。

    2.6K10
    领券