当前位置:网站首页>webuploader文件上传 拖拽上传 进度监听 类型控制 上传结果监听控件
webuploader文件上传 拖拽上传 进度监听 类型控制 上传结果监听控件
2022-07-05 19:23:00 【-耿瑞-】
webuploader 是一款兼容性很强 且也非常好用的前端控件 vue项目中也可以使用
我们先来简单看看
大家可以先下载我上传的资源插件
https://download.csdn.net/download/weixin_45966674/85899651?spm=1001.2014.3001.5503
下载下来后我们可以看到目录如下
没错 这款插件是依赖jquery 这是个小败笔吧 不过上一代的技术 也确实基本都要依赖jq
然后我们建一个目录 建一个webuploader 将这四个文件放进里面
然后和webuploader同级目录创建页面
演示代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!--引入WebUploader文件上传的CSS-->
<link rel="stylesheet" type="text/css" href="./webuploader/webuploader.css" media="screen" />
<script type="text/javascript" src="./webuploader/jquery-1.8.3.js"></script>
<!--引入WebUploader文件上传的JS-->
<script type="text/javascript" src="./webuploader/webuploader.js"></script>
<style> .maskUpload{
width: 300px; height: 300px; background-color: blueviolet; } </style>
</head>
<body>
<!--用来存放文件信息-->
<div class="uploader-demo">
<div class="btns">
<div id="filePicker">选择文件</div>
<button id="ctlBtn" class="mybutton" onclick="upload_imgs()">开始上传</button>
<div class = "maskUpload"></div>
</div>
</div>
<script type="text/javascript"> var uploader; $(function(){
//初始化Web Uploader,每上传一个文件都会创建一个uploader对象,同时选择多个文件时,则会创建多个uploader对象。 uploader = WebUploader.create({
// 选完文件后,是否自动上传。 auto: false, //true时,选择文件后自动上传。 // swf文件路径 swf: 'resources/widget/webuploader/Uploader.swf', // 文件接收服务端。 server: 'upload/uploadImg', // 选择文件的按钮。可选。 pick: '#filePicker', dnd: ".maskUpload", accept: {
title: '文件上传', //支持上传的文件类型 extensions: 'jpg,png,doc,xlsx', mimeTypes: '*' } }); //当文件被加入队列时触发 uploader.on('fileQueued',function (file) {
console.log(file); }); //队列中所有文件上传结束时触发 uploader.on('error', (type) => {
console.log('上传文件类型不支持时触发'); }); //文件上传中实时返回进度 uploader.on('uploadProgress', (file, percentage) => {
console.log('上传进度'+percentage); }); //文件上传成功时触发 uploader.on("uploadSuccess",function (file,response) {
console.log('上传成功'); }); //文件上传错误时触发 uploader.on('uploadError', (file, reason) => {
console.log('上传失败'); }); //队列中所有文件上传结束时触发 uploader.on('uploadFinished', (file, reason) => {
console.log('上传结束'); }); }) //上传图片 function upload_imgs() {
if (uploader){
uploader.upload(); } } </script>
</body>
</html>
然后我们点击上传 这里extensions控制文件后缀格式 我设置的格式 只支持 jpg,png,doc,xlsx
点击上传如果是对的合适 就会被加入队列 触发fileQueued 每一个文件加入队列都会触发fileQueued 我们可以定义一个数组 将fileQueued的每一次文件流都存起来展示用
然后我们上传不支持的格式 就会被uploadFinished拦截下来
我们点击上传就会触发uploadProgress 这个是这款框架我觉得最大的亮点 可以监听到上传的进度 走到多少了
执行 uploader.upload();直接上传
上传成功触发uploadSuccess
失败则执行uploadFinished
当然还有一个亮点就是拖拽上传
dnd属性控制 里面对应的就是css选择器 选择拖拽到哪块元素上触发上传
我们这里设置了 class 为 maskUpload 的div
我们将文件从电脑直接拖拽到界面上就会触发添加到队列中 也是非常的好用
但这个工具需要后台配合 server控制上传的服务端口 swf设置上传的接口名称
边栏推荐
- 中国银河证券开户安全吗 证券开户
- 软件测试是干什么的?学习有啥要求?
- MMO项目学习一:预热
- 2022最新大厂Android面试真题解析,Android开发必会技术
- Decision tree and random forest
- C#应用程序界面开发基础——窗体控制(5)——分组类控件
- 测试的核心价值到底是什么?
- Microwave radar induction module technology, real-time intelligent detection of human existence, static micro motion and static perception
- 全网最全的低代码/无代码平台盘点:简道云、伙伴云、明道云、轻流、速融云、集简云、Treelab、钉钉·宜搭、腾讯云·微搭、智能云·爱速搭、百数云
- 潘多拉 IOT 开发板学习(HAL 库)—— 实验8 定时器中断实验(学习笔记)
猜你喜欢
Fuzor 2020軟件安裝包下載及安裝教程
Explain in detail the functions and underlying implementation logic of the groups sets statement in SQL
C# 语言的高级应用
Advanced application of C # language
集合
How to convert word into PDF? Word to PDF simple way to share!
微波雷达感应模块技术,实时智能检测人体存在,静止微小动静感知
2022 the latest big company Android interview real problem analysis, Android development will be able to technology
PHP利用ueditor实现上传图片添加水印
Django uses mysqlclient service to connect and write to the database
随机推荐
强化学习-学习笔记4 | Actor-Critic
C# 语言的高级应用
Is it safe for China Galaxy Securities to open an account? Securities account opening
Django使用mysqlclient服务连接并写入数据库的操作过程
JAD installation, configuration and integration idea
潘多拉 IOT 开发板学习(HAL 库)—— 实验8 定时器中断实验(学习笔记)
Go语言 | 02 for循环及常用函数的使用
word如何转换成pdf?word转pdf简单的方法分享!
What do software test engineers do? How about the prospect of treatment?
Debezium系列之:修改源码支持unix_timestamp() as DEFAULT value
2022 the latest big company Android interview real problem analysis, Android development will be able to technology
JMeter 常用的几种断言方法,你会了吗?
Fuzor 2020软件安装包下载及安装教程
Tutoriel de téléchargement et d'installation du progiciel fuzor 2020
vagrant2.2.6支持virtualbox6.1版本
PHP uses ueditor to upload pictures and add watermarks
Debezium系列之:postgresql从偏移量加载正确的最后一次提交 LSN
HAC cluster modifying administrator user password
How MySQL queries and modifies JSON data
决策树与随机森林