当前位置:网站首页>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设置上传的接口名称
边栏推荐
- Advanced application of C # language
- The basic grammatical structure of C language
- Which securities company is better and which platform is safer for mobile account opening
- Go语言 | 01 WSL+VSCode环境搭建避坑指南
- uniapp获取微信头像和昵称
- PHP利用ueditor实现上传图片添加水印
- 集合
- Fuzor 2020 software installation package download and installation tutorial
- Go语言 | 02 for循环及常用函数的使用
- Oracle故障处理:Ora-10873:file * needs to be either taken out of backup or media recovered
猜你喜欢

决策树与随机森林
![CF: B. almost Ternary Matrix [symétrie + règles de recherche + Construction + I am Construction Waste]](/img/5d/06229ff7cfa144dbcb60ae43d5c435.png)
CF: B. almost Ternary Matrix [symétrie + règles de recherche + Construction + I am Construction Waste]

不愧是大佬,字节大牛耗时八个月又一力作

强化学习-学习笔记4 | Actor-Critic

Apprentissage du projet MMO I: préchauffage
![[performance test] jmeter+grafana+influxdb deployment practice](/img/32/f07792734d040829398a90a2040146.png)
[performance test] jmeter+grafana+influxdb deployment practice

MMO项目学习一:预热
Mysql如何对json数据进行查询及修改

华为让出的高端市场,小米12S靠徕卡能抢到吗?

Interviewer: what is the difference between redis expiration deletion strategy and memory obsolescence strategy?
随机推荐
Interviewer: what is the difference between redis expiration deletion strategy and memory obsolescence strategy?
That's awesome. It's enough to read this article
UWB超宽带定位技术,实时厘米级高精度定位应用,超宽带传输技术
Go语言 | 02 for循环及常用函数的使用
C#应用程序界面开发基础——窗体控制(6)——菜单栏、工具栏和状态栏控件
四万字长文说operator new & operator delete
100million single men and women supported an IPO with a valuation of 13billion
okcc呼叫中心有什么作用
【C语言】字符串函数及模拟实现strlen&&strcpy&&strcat&&strcmp
Teach you to deal with JS reverse picture camouflage hand in hand
测试外包公司怎么样?
What are the reliable domestic low code development platforms?
How to convert word into PDF? Word to PDF simple way to share!
成功入职百度月薪35K,2022Android开发面试解答
Notion 类生产力工具如何选择?Notion 、FlowUs 、Wolai 对比评测
HiEngine:可媲美本地的云原生内存数据库引擎
块编辑器如何选择?印象笔记 Verse、Notion、FlowUs
MySQL中字段类型为longtext的值导出后显示二进制串方式
5 years of experience, 27 days of Android programmer interview, 2022 programmer advanced classic
Mariadb root用户及普通用户的密码 重置