网站首页 > 技术文章 正文
介绍
DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库, 零依赖且高度可定制
官网和Github
官方文档:https://www.dropzonejs.com/
中文版本:http://wxb.github.io/dropzonejs.com.zh-CN/dropzonezh-CN/#installation
Github: https://github.com/enyo/dropzone/
下载和安装
https://raw.githubusercontent.com/enyo/dropzone/master/dist/dropzone.js
引入到我们的页面
<script src="./path/to/dropzone.js"></script>
这是官网Demo的效果, 如果你也想用到这样的效果, 可以直接到源码包的dist文件夹下样式拷贝过来。
Dropzone 不会处理你上传到服务器上面的文件. 你必须自己编写代码实现接收和保存上传的文件。
如何使用?
我们只需要创建一个class类名是dropzone的form表单元素:
<form action="/file-upload" class="dropzone" id="my-awesome-dropzone"></form>
Dropzone将查找所有的 class 属性中包含 dropzone 的表单元素, 就是这么简单, 这些上传文件将被正常处理就像这里是一段像下面这样的HTML代码:
<input type="file" name="file" />
程序化方式创建 dropzones
不是必须在form上, 你也可以通过js代码初始化一个dropzone实例
// Dropzone class:
var myDropzone = new Dropzone("div#myId", { url: "/file/post"});
或者假如你用到了jquery也可以这样写
// jQuery
$("div#myId").dropzone({ url: "/file/post" });
配置
有两种方式配置 dropzones.
一种就是和之前创建表单一样
另一种是通过js代码实现, 如下
Dropzone.options.myAwesomeDropzone = {
paramName: "file", // The name that will be used to transfer the file
maxFilesize: 2, // MB
accept: function(file, done) {
if (file.name == "justinbieber.jpg") {
done("Naha, you don't.");
}
else { done(); }
}
};
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="./dropzone/basic.css" />
<link rel="stylesheet" href="./dropzone/dropzone.css" />
<script src="./dropzone/dropzone.js"></script>
</head>
<body>
<form action="" class="dropzone" id="my-awesome-dropzone"></form>
</body>
<script type="text/javascript">
//拖拽上传文件
Dropzone.autoDiscover = true;
var myDropzone = new Dropzone(".dropzone", {
url: "fileList.php",
addRemoveLinks: true,
method: 'post',
filesizeBase: 1024,
sending: function(file, xhr, formData) {
formData.append("filesize", file.size);
},
success: function(file, response, e) {
var res = JSON.parse(response);
if (res.error) {
$(file.previewTemplate).children('.dz-error-mark').css('opacity', '1')
}
}
});
</script>
</html>
猜你喜欢
- 2024-09-14 JavaScript案例讲解:3D相册拖拽旋转
- 2024-09-14 演示HTML5中的拖曳操作代码详见教材demo3-8
- 2024-09-14 springboot+activiti7之拖拽表单k-form-design整合
- 2024-09-14 使用拉易网生成图文并茂的HTML邮件(一)
- 2024-09-14 使用 CSS Grid Generator来快速使用及学习 Grid 布局
- 2024-09-14 HTML5 拖放(HTML5拖放API之回收站效果)
- 2024-09-14 Swapy:让拖拽交换布局变得简单(swapy:让拖拽交换布局变得简单的方法)
- 2024-09-14 「最近项目小结」使用Vue实现一个简单的鼠标拖拽滚动效果插件
- 2024-09-14 Flutter App动态化与可视化搭建方案设计
- 2024-09-14 10分钟创建一个属于你自己的网站(建立一个属于自己的网站)
- 1512℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 555℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 503℃MySQL service启动脚本浅析(r12笔记第59天)
- 481℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 479℃启用MySQL查询缓存(mysql8.0查询缓存)
- 459℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 439℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 437℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)