Atitit 上传进度的实现与原理 目录 1.1. 前端 1 1.2. 读取进度 1 1.3. 后端 定时注入进度 1 1.1.前端 wind
Atitit 上传进度的实现与原理
目录
1.1. 前端 1
1.2. 读取进度 1
1.3. 后端 定时注入进度 1
1.1. 前端
window.setInterval(function(){
var url="../commServletV3?class=%20com.attilax.web.UploadServlet1%20&method=upProcessInfo%20&argstypes=&args=";
$.get(url, function (result, status, xhr) {
$("#uppct").text(result.rate+"%");
}, "json");
},3000);
1.2. 读取进度
public static Object upProcessInfo() {
return Global.getVarVal("vals626_upProcessInfo");
}
1.3. 后端 定时注入进度
//{"itemNum":3,"path":"","rate":100,"readSize":57815489,"show":"57815489/57815489 byte","totalSize":57815489}
upload.setProgressListener(new ProgressListener() {
public void update(long pBytesRead, long pContentLength, int pItems) {
ProcessInfo pri = new ProcessInfo();
pri.itemNum = pItems;
pri.readSize = pBytesRead;
pri.totalSize = pContentLength;
pri.show = pBytesRead + "/" + pContentLength + " byte";
pri.rate = Math.round(new Float(pBytesRead) / new Float(pContentLength) * 100);
System.out.println( JSON.toJSONString(pri) );
Global.setVarVal("vals626_upProcessInfo", pri);
// hs.setAttribute("proInfo", pri);
}
});
package com.attilax.web;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.ProgressListener;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
import com.alibaba.fastjson.JSON;
import com.attilax.io.pathx;
import com.attilax.util.Global;
import com.attilax.util.cli.SSHHelper;
import com.google.common.collect.Maps;
//
@WebServlet(name = "UploadServlet1", urlPatterns = { "/UploadServlet1", "/dafdafsss22" }, loadOnStartup = 1)
public class UploadServlet1 extends HttpServlet {
public static Object upProcessInfo() {
return Global.getVarVal("vals626_upProcessInfo");
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
// 创建工厂 common fileup 1.3 jar
DiskFileItemFactory factory = new DiskFileItemFactory();
// 解决上传文件名的中文乱码
// upload.setHeaderEncoding("UTF-8");
// 通过工厂创建解析器
ServletFileUpload upload = new ServletFileUpload(factory);
//{"itemNum":3,"path":"","rate":100,"readSize":57815489,"show":"57815489/57815489 byte","totalSize":57815489}
upload.setProgressListener(new ProgressListener() {
public void update(long pBytesRead, long pContentLength, int pItems) {
ProcessInfo pri = new ProcessInfo();
pri.itemNum = pItems;
pri.readSize = pBytesRead;
pri.totalSize = pContentLength;
pri.show = pBytesRead + "/" + pContentLength + " byte";
pri.rate = Math.round(new Float(pBytesRead) / new Float(pContentLength) * 100);
System.out.println( JSON.toJSONString(pri) );
Global.setVarVal("vals626_upProcessInfo", pri);
// hs.setAttribute("proInfo", pri);
}
});
Atitit 上传进度的实现与原理 目录 1.1. 前端 1 1.2. 读取进度 1 1.3. 后端 定时注入进度 1 1.1.前端 wind相关推荐
- vba上传文件到ftp服务器指定目录下面
vba上传文件到ftp服务器指定目录 +脚本形式 文章目录 1. 测试版本无校验: 2. 测试版本有检验 3. 文件不存在校验版本 4. 文件不存在校验+必填项校验版本 1. 测试版本无校验: Sub ...
- php上传文件的目录,php文件上传及下载附带显示文件及目录功能
主页面wenjianceshi.php 文件 *{ font-family:"微软雅黑";} #wai{width:400px; margin:0 auto; padding:0p ...
- crt中 新建的连接存储在哪_SecureCRT上传和下载文件(下载默认目录)
SecureCR 下的文件传输协议有ASCII .Xmodem .Ymodem .Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这种古老的传输协议速度较慢,但由于使 ...
- securecrt 连接配置存放目录_SecureCRT上传和下载文件(下载默认目录)
SecureCR 下的文件传输协议有ASCII .Xmodem .Ymodem .Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这种古老的传输协议速度较慢,但由于使 ...
- [网络安全自学篇] 三十三.文件上传之绕狗一句话原理和绕过安全狗(六)
这是作者的系列网络安全自学教程,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文详细讲解了Upload-labs靶场及文件上传漏洞20道CTF题目,并结合C ...
- php 绕过扩展名检查,文件上传漏洞---后缀名绕过原理
0x00 前言 今天来讨论文件上传漏洞之后缀名绕过.通常在实际生产过程中,并不会有直接可以上传.php等明显的可直接执行的文件,所以在这里我记录下后缀名绕过的原理和方法. 0x01 绕过方法 首先准备 ...
- vb打开ftp服务器文件路径,VB上传指定文件到FTP指定目录。。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 目前用如下代码能够实现上传,但是不能上传到指定目录去..怎么改变? Option Explicit Private Const INTERNET_OPEN ...
- Java实现上传文件到指定服务器指定目录
前言需求 使用freemarker生成的静态文件,统一存储在某个服务器上.本来一开始打算使用ftp实现的,奈何老连接不上,改用jsch.毕竟有现成的就很舒服,在此介绍给大家. 具体实现 引入的pom ...
- FCKeditor的配置,上传文件的文件名乱码和目录的设定,加入兔斯基表情
今天,需要一个简单的编辑器,找来找去还是感觉FCKeditor比较完美. 但是感觉有点庞大,Nothing,去定制看看 一.简单模式定制 默认的Toolbar=Default,图标太多了 Toolba ...
- 上传文件解决tomcat的临时目录失效问题
项目场景: 今天测试又过来搞我,说平台的上传文件功能突然不能用了,上个月都测试得好好的 问题描述: 查看了系统服务日志,看到了一个错误,错误的意思是某个临时目录失效了,不存在了.如下 org.spri ...
最新文章
- Why I Love My Virtual PCs
- DL之VGG16:基于VGG16迁移技术实现猫狗分类识别(图片数据量调整→保存h5模型)
- 科大星云诗社动态20210818
- 线性判别分析LDA的数学原理(一)
- Phpmyadmin安装过程
- Android 常见内存泄漏及解决方法
- Shared Event-loop for Same-Origin Windows(译)
- ReentrantLock与synchronized的区别(最直观)
- 【翻译】Sencha Touch 2入门:创建一个实用的天气应用程序之二
- java 获取对象的大小限制_Java - 如何获取对象大小
- 菜鸟的学习之路(12) —HashSet类详解
- 主板找不到SSD解决一例
- 单片机控制步进电机程序c语言正反转停止,51单片机控制步进电机的启动、停止、正转、反转...
- 文件搜索工具终极大PK挑战赛
- 广数系统加工中心编程_CNC加工中心编程加工的一些小技巧,学会必有用
- 现在大家如何搭建一款神兽H5游戏
- 变点理论CUSUM在择时交易中的应用
- RAKsmart:Windows修改远程端口号的方法
- Springboot毕设项目共享单车管理系统93je9(java+VUE+Mybatis+Maven+Mysql)
- 声称AI存在意识,谷歌工程师遭解雇:违反保密协议
热门文章
- 为什么字符串中的字符无效_JavaScript中的基本字符串与字符串对象的区别
- python collections模块_python collections模块
- python中pickle模块无法导入_python pickle模块
- 浅析PCIe链路LTSSM状态机
- canvas视频逐帧播放
- Linux中find命令-path -prune用法详解
- 数组 , List互转
- linux下把进程注册成服务,用service 调用
- [JSOI2009]瓶子和燃料
- day39-Spring 14-Spring的JDBC模板:DBCP连接池配置