Html5中如何监听附件上传进度
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇"Html5中如何监听附件上传进度"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"
千家信息网最后更新 2025年11月07日Html5中如何监听附件上传进度
这篇"Html5中如何监听附件上传进度"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Html5中如何监听附件上传进度"文章吧。
一、存在问题
经测试发现,new XMLHttpRequest()在附件上传请求中,WIFI关闭切4G上传,上传进度不会持续;4G不关闭打开WIFI会继续上传,但等待时间过长,实际上是4G在上传,倘若关闭4G网络,上传进度终止。
二、相关代码
2.1 HTML
提交中... 0% 2.2 CSS样式
/* 附件上传进度条 */.process-wrapper{ -moz-user-select:none; position: fixed; left: 0; top: 0; bottom: 0; right: 0; z-index: 10000; display: none;}.process-face{ width: 100%; height: 100%; background-color: #000; opacity: 0.7; position: fixed;}.close-icon{ width: 26px; height: 26px; position: fixed; left: 50%; top: calc( 50% + 40px ); transform: translate(-50%,-50%);}.process{ width: 90%; height: 30px; background-color: #fff; border-radius: 30px; overflow: hidden; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); text-align: center; font-size: 14px; line-height: 30px; color: #999;}.process-inner{ width: 100%; height: 30px; position: absolute; left: 0; top: 0; background-color: #0079C1; transition: 0.1s; z-index: -1;}2.3 JS
(function(app, doc) { var $processWrap = document.getElementById("processWrap"), $closeBtn = document.getElementById("closeBtn"), xhr = new XMLHttpRequest(); doc.addEventListener('netchange', onNetChange, false); function onNetChange() { if ($processWrap.style.display != "none") { $processWrap.style.display = "none"; xhr.abort(); mui.toast('网络中断请重试'); } } doSend: function() { app.ajaxFile({ //封装好的ajax请求 url: "", data: FormData, xhr: xhr, success: function(r) { if (r == '1') { mui.toast("保存成功"); // 上传成功逻辑处理 } else { $processWrap.style.display = "none"; mui.toast(app.netError); } }, error: function(r) { $processWrap.style.display = "none"; }, progress: function(e) { if (e.lengthComputable) { var progressBar = parseInt((e.loaded / e.total) * 100); if (progressBar < 100) { $progress[xss_clean] = progressBar + "%"; $processInner.style.width = progressBar + "%"; } } }, timeout:function(){ $processWrap.style.display = "none"; } }); }) mui.plusReady(function() { $closeBtn.addEventListener("tap",function(){ setTimeout(function(){ $processWrap.style.display = "none"; xhr.abort(); }, 400); }) });})(app, document);三、app.js封装ajax请求
var $ajaxCount = 0;window.app = { //ajaxFile超时时间 fileTimeout: 180000, ajaxFile: function(option) { $ajaxCount++; var _ajaxCount = $ajaxCount; if (!option.error) { option.error = ajaxError; // 请求失败提示 } if (option.validateUserInfo == undefined) option.validateUserInfo = true; var xhr = option.xhr || new XMLHttpRequest(); xhr.timeout = app.fileTimeout; xhr.open('POST', app.getItem(app.localKey.url) + option.url, true); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var r = xhr.responseText; if (r) { r = JSON.parse(r); } if (_ajaxCount == $ajaxCount) { option.success && option.success(r); } } } xhr.upload.onprogress = function (e) { option.progress(e); } xhr.onerror = function(e) { option.error(e); // 添加 上传失败后的回调函数 } xhr.ontimeout = function(e){ option.timeout(e); app.closeWaiting(); $.toast("请求超时,请重试"); xhr.abort(); } xhr.send(option.data);},}拓展:后端NodeJS实现代码
const express = require("express");const multer = require("multer");const expressStatic = require("express-static");const fs = require("fs");let server = express();let upload = multer({ dest: __dirname+'/uploads/' })// 处理提交文件的post请求server.post('/upload_file', upload.single('file'), function (req, res, next) { console.log("file信息", req.file); fs.rename(req.file.path, req.file.path+"."+req.file.mimetype.split("/").pop(), ()=>{ res.send({status: 1000}) })})// 处理静态目录server.use(expressStatic(__dirname+"/www"))// 监听服务server.listen(8080, function(){ console.log("请使用浏览器访问 http://localhost:8080/")});以上就是关于"Html5中如何监听附件上传进度"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
进度
附件
内容
监听
处理
成功
代码
文章
时间
知识
篇文章
网络
封装
价值
信息
函数
大部分
实际
实际上
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
山东源氏网络技术有限公司
居民健康档案 数据库表结构
手机软件开发要用什么
铜川网络技术推荐厂家
网络安全知识题库学生
强化网络安全保护
软件工程对软件开发有什么帮助
网络安全中职需要学什么课程
松江区工商数据库系统研发资格
方舟在自己服务器开修改器
密码行业和网络安全行业
excel服务器连接不上怎么办
中联his 数据库 结构
导入数据库脚本
服务器主机2000元
工业园区大数据软件开发口碑
济南联想服务器代理供货商
数据库锁_索引
湖南筑志软件开发公司
神州通用数据库下载
方舟联机服务器怎么样
前锦网络技术架构
福建数据库安全箱厂家现货
国家网络安全法的资料
虚拟银行短信软件开发
监利天气预报软件开发
汽车网络安全测试流程规范
西安棋牌游戏软件开发培训机构
中科院信工所网络安全是A吗
数据库如何建立索引