Sftp下载在页面上显示进度

业务需求是这样的,从一个服务器下载文件到本地,但有时候文件很大,需要查看下载的进度。

这里只提供一下思路,有问题的可以留言交流。

1.项目用的是ssm架构(springboot+spring+mybatis)

2.sftp用到的是jsch这个包

3.下载的时候用ajax来请求,因为ajax的success回调函数只有在请求结束的时候才能调用,所以无法实时监控下载的情况。

4.想到通过ajax的beforeSend这个回调函数来增加一个监控线程,设定一个setInterval,每隔1秒请求后台来获取下载的进度,主要代码如下:

				beforeSend: function(data) {
					setInterval(function(){
					    //TODO 请求后台,获取下载的进度情况
					},1000);
				},

5.后台controller层增加一个请求接口,来获取下载的进度情况

	@RequestMapping(value = "/checkProgress")
	@ResponseBody
	public String checkProgress() {
        //TODO 获取下载的进度信息
	}

6.jsch本身提供了一个SftpProgressMonitor接口来监听下载的进度信息,所以写一个类来实现这个接口。

public class Monitor implements SftpProgressMonitor {

	@Overrid
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值