基于原生JavaScript实现文件与图片拖拽上传功能

作者:木棉

时间:2026-10-21

浏览:580

本文介绍如何使用原生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实现从电脑拖拽文件至浏览器进行上传的方法,希望能对读者有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章