Java使用comms-net jar包完成ftp文件上传进度的检测功能
生活随笔
收集整理的這篇文章主要介紹了
Java使用comms-net jar包完成ftp文件上传进度的检测功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文章只講述大致的思路與本次功能對應的一些開發環境,具體實現請結合自己的開發情況,僅供參考,如果有不對的地方,歡迎大家指出!
準備環境:JDK1.7 OR 1.8、eclipse、ftp服務器(可自行搭建)、comms-net jar包3.3版本的。其余的就不詳細列舉了。
1.在現實開發中ftp服務器和項目的部署服務器基本不會是同一臺,所以基礎springmvc的文件上傳進度獲取,只能獲取到文件的二進制流到達項目后臺的進度。對于真實的ftp文件上傳進度,需要使用comms-net提供的監聽器來實現。
2.在ftp代碼上傳前設置監聽器。完成文件上傳的進度監聽,我這邊是把進度保存在session中,前端定時獲取。上傳完成后,把session中的對應值清空。附上核心代碼:
/**
* 獲取文件上傳進度
* @param totalBytes 文件總大小
*/
public void uploadProgress(long totalBytes){
CopyStreamAdapter streamListener = new CopyStreamAdapter() {
/**
* @param totalBytesTransferred已經上傳的字節數
*/
@Override
public void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) {
/** 通過計算已經上傳大小和總大小的百分比獲取上傳進度。 */
String percent = CalculationUtil.percentCal((int)totalBytesTransferred, (int)totalBytes, 3);
if(percent.contains(".")){
percent = percent.substring(0, percent.lastIndexOf("."));
}
HttpSession session = request.getSession();
session.setAttribute(session.getId(), percent);
}
};
this.client.setCopyStreamListener(streamListener);
}
總結
以上是生活随笔為你收集整理的Java使用comms-net jar包完成ftp文件上传进度的检测功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 惠普打印机M180N,不小心点了 升级(
- 下一篇: git 检查更新文件_Git通过差异比对