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相关推荐

  1. vba上传文件到ftp服务器指定目录下面

    vba上传文件到ftp服务器指定目录 +脚本形式 文章目录 1. 测试版本无校验: 2. 测试版本有检验 3. 文件不存在校验版本 4. 文件不存在校验+必填项校验版本 1. 测试版本无校验: Sub ...

  2. php上传文件的目录,php文件上传及下载附带显示文件及目录功能

    主页面wenjianceshi.php 文件 *{ font-family:"微软雅黑";} #wai{width:400px; margin:0 auto; padding:0p ...

  3. crt中 新建的连接存储在哪_SecureCRT上传和下载文件(下载默认目录)

    SecureCR 下的文件传输协议有ASCII .Xmodem .Ymodem .Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这种古老的传输协议速度较慢,但由于使 ...

  4. securecrt 连接配置存放目录_SecureCRT上传和下载文件(下载默认目录)

    SecureCR 下的文件传输协议有ASCII .Xmodem .Ymodem .Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这种古老的传输协议速度较慢,但由于使 ...

  5. [网络安全自学篇] 三十三.文件上传之绕狗一句话原理和绕过安全狗(六)

    这是作者的系列网络安全自学教程,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文详细讲解了Upload-labs靶场及文件上传漏洞20道CTF题目,并结合C ...

  6. php 绕过扩展名检查,文件上传漏洞---后缀名绕过原理

    0x00 前言 今天来讨论文件上传漏洞之后缀名绕过.通常在实际生产过程中,并不会有直接可以上传.php等明显的可直接执行的文件,所以在这里我记录下后缀名绕过的原理和方法. 0x01 绕过方法 首先准备 ...

  7. vb打开ftp服务器文件路径,VB上传指定文件到FTP指定目录。。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 目前用如下代码能够实现上传,但是不能上传到指定目录去..怎么改变? Option Explicit Private Const INTERNET_OPEN ...

  8. Java实现上传文件到指定服务器指定目录

    前言需求 使用freemarker生成的静态文件,统一存储在某个服务器上.本来一开始打算使用ftp实现的,奈何老连接不上,改用jsch.毕竟有现成的就很舒服,在此介绍给大家. 具体实现 引入的pom ...

  9. FCKeditor的配置,上传文件的文件名乱码和目录的设定,加入兔斯基表情

    今天,需要一个简单的编辑器,找来找去还是感觉FCKeditor比较完美. 但是感觉有点庞大,Nothing,去定制看看 一.简单模式定制 默认的Toolbar=Default,图标太多了 Toolba ...

  10. 上传文件解决tomcat的临时目录失效问题

    项目场景: 今天测试又过来搞我,说平台的上传文件功能突然不能用了,上个月都测试得好好的 问题描述: 查看了系统服务日志,看到了一个错误,错误的意思是某个临时目录失效了,不存在了.如下 org.spri ...

最新文章

  1. Why I Love My Virtual PCs
  2. DL之VGG16:基于VGG16迁移技术实现猫狗分类识别(图片数据量调整→保存h5模型)
  3. 科大星云诗社动态20210818
  4. 线性判别分析LDA的数学原理(一)
  5. Phpmyadmin安装过程
  6. Android 常见内存泄漏及解决方法
  7. Shared Event-loop for Same-Origin Windows(译)
  8. ReentrantLock与synchronized的区别(最直观)
  9. 【翻译】Sencha Touch 2入门:创建一个实用的天气应用程序之二
  10. java 获取对象的大小限制_Java - 如何获取对象大小
  11. 菜鸟的学习之路(12) —HashSet类详解
  12. 主板找不到SSD解决一例
  13. 单片机控制步进电机程序c语言正反转停止,51单片机控制步进电机的启动、停止、正转、反转...
  14. 文件搜索工具终极大PK挑战赛
  15. 广数系统加工中心编程_CNC加工中心编程加工的一些小技巧,学会必有用
  16. 现在大家如何搭建一款神兽H5游戏
  17. 变点理论CUSUM在择时交易中的应用
  18. RAKsmart:Windows修改远程端口号的方法
  19. Springboot毕设项目共享单车管理系统93je9(java+VUE+Mybatis+Maven+Mysql)
  20. 声称AI存在意识,谷歌工程师遭解雇:违反保密协议

热门文章

  1. 为什么字符串中的字符无效_JavaScript中的基本字符串与字符串对象的区别
  2. python collections模块_python collections模块
  3. python中pickle模块无法导入_python pickle模块
  4. 浅析PCIe链路LTSSM状态机
  5. canvas视频逐帧播放
  6. Linux中find命令-path -prune用法详解
  7. 数组 , List互转
  8. linux下把进程注册成服务,用service 调用
  9. [JSOI2009]瓶子和燃料
  10. day39-Spring 14-Spring的JDBC模板:DBCP连接池配置