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

js拖拽上传图片

有时候,在开发中,需要遇到拖拽上传图片的需求,即从磁盘选中一张或多张图片,然后按着鼠标把图片拖动到页面上指定的区域,实现图片的上传。...ie=edge"> Document <script src="https://cdn.bootcss.com/jquery/1.12.0/jquery.<em>js</em>...这里我们就要先说说在 http 中传输<em>文件</em>的问题。起初http协议中没有<em>上传</em><em>文件</em>方面的功能,直到rfc1867为http协议添加了这个功能。...当我们使用表单<em>上传</em><em>文件</em>时,我们来查看他的Request headers,如下图: ?...请求头的不同,对于<em>上传</em><em>文件</em>的请求,contentType = multipart/form-data是必须的,而 post 则不是,毕竟 post 又不是只<em>上传</em><em>文件</em>~。

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

原生的文件拖拽上传

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

84020

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

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

10310

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

在系统中上传文件时,需要支持多文件文件上传,并且需要在文件上传时需要将多文件压缩成zip包,下载的时候,直接下载zip包 听到这个需求,我的第一反应就是js应该没有强大吧,因为压缩和访问文件夹,涉及到了文件系统的读取和修改...主要用到的库是 jszip 则 则这里简单对jszip做下简单介绍,更详细的功能和api请移步官网. jszip是是一个创建,读取和写入.zip文件js库, api优化,简单 浏览器支持 实现思路如下...: 1:用户选中文件文件夹后,获取文件对象, 2:遍历获取的文件对象 放入实例化的zip对象中 3:使用generateAsync()方法生成文件, 通过formdata提交到服务端 代码如下: 此案例支持拖拽上传多个文件...important } 这里说一下拖拽上传文件, 主要是用到的原生事件是这三个 ondrop ondragover ondragleave 加上prevent 可以防止拖拽过程...在ondragover的事件上可以处理文件拖拽到了可放置的元素上,对用户 进行友好提示. ondrop 事件是文件拖拽到了元素上,松开鼠标时触发, 这个时候可以通过事件拿到拖拽文件列表 使用even.dataTransfer.files

3.3K10

js文件分片上传

写在前面 今天我们写一下关于js的分片上传,因为工作中很多时候上传文件是比较大的,为了不让卡死,我们可以使用分片上传的方式进行文件的传输,下面就简单的将思路梳理一下,然后贴上代码 思路分析 既然是分片上传...,也就是说,假设一个文件的大小是10Mb,我们将其分为十份,每一份都按照前面所的完整的上传过程进行上传,然后循环十次即可将全部的都上传结束,这是我们的基本思路,下面我们贴上代码分析一下 源代码实现...fragmentAtionUpload 分片上传 * @params file 上传文件 * @params cbUrl 上传的回调函数 * @params size 分片的大小...,url和分片的大小,回调函数就做一件事,就是上传,他不管上传的大小,所以我们在循环的时候反复调用这个函数即可,最后是文件操作的函数就不多说了,总体来说最基本的分片上传还是比较简单的。...问题分析 这里有一个比较致命的问题,就是因为是分片上传,所以文件是被切成了一段一段的,那么就意味着如果上传的过程中因为网络或者别的原因中断了,那么问题就比较严重了,你可以选择重新上传,但是因为前面的一些片段已经上传上去了

7.3K20
领券