基于原生JavaScript实现文件与图片拖拽上传功能
作者:木棉时间:2026-10-21 23:22:19浏览:581
本文介绍如何使用原生JavaScript实现浏览器内的文件与图片拖拽上传功能。通过监听拖放事件,利用FormData对象封装文件数据,并结合DragUpLoads插件简化处理流程,最终通过异步请求将文件发送至后端服务器,无需依赖复杂框架即可实现基础上传交互。
效果展示与实现原理
首先展示最终实现的效果。

HTML结构搭建
接下来编写HTML结构代码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="./upload.js"></script>
<style>
#drop img{width: 100px;height: 100px;margin: 10px;}
</style>
</head>
<body onload="test()">
<div id="drop" style="width: 500px;height: 400px;background: #eee;margin: 0 auto;">
<div style="clear: both;"></div>
</div>
<p style="text-align: center"><button onclick="up()">提交</button></p>
</body>
</html>
JavaScript脚本引入与配置
随后引入必要的JavaScript脚本。
获取JS脚本的地址:http://files.cnblogs.com/files/jiebba/upload.js
在页面中引用该插件以启用功能。
var formData = new FormData(),list={}
function test() {
var d = new DragUpLoads()
d.getDragImage({id:'drop',dropCallback:function (data) {
if(list[data.name]) return;
list[data.name] = true
formData.append("files", data.blob);
formData.append("asdfas", 'asdfasdf');
document.getElementById('drop').appendChild(data.img)
/*
* 返回img对象,url ,blob对象
* */
}})
}
function up() {
console.log(formData)
/*
* formData 这个对象即我们要传的值
* 通过 异步post/get 给后台即可
* */
}
以上介绍了利用JS实现从电脑拖拽文件至浏览器进行上传的方法,希望能对读者有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持!
作者最新文章
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
为什么JS中typeof []返回object:数组类型检测误区解析
2026-11-04 19:50:47
D3.js 新手入门:环境搭建与第一个条形图实现
2026-11-04 10:49:48
