这个从理论上讲不是一定不可以实现,而是较难实现,难在于现成的ftp服务器不提供这种功能,可以实现是因为有哪些开源的ftp服务 比如filezilla. 你可以通过修改源码支持在传输文件之前,加个压缩功能,这个在我们的项目中就有过调研,调研的结果是已经进行了一定的源码改动做到了,不过我们是在上传完成时做一些操作,你的是在下载时做一些操作,c++的东西主要是通过一些消息,你请求下载的时候肯定也是由消息的,你可以截获,然后写个压缩程序调用一下。
引用
1.#!/bin/sh //这是shell程序的开头部分,必须地。
2.tar -cvf filter.tar filter/ //解压 filter.tar 到 filter/文件夹下
3.ftp -n<
4.open 10.70.193.33 // 打开10.70.193.33 这个ftp服务地址,就是连接服务。
5.user username password // 使用用户名和密码
6.binary // 传输文件是用二进制的方式。
7.prompt off // 禁用提示 (相当于bat中的@echo off)
8.cd /app/ngapp/data/bak // 进入 /app/ngapp/data/bak 目录
9.mput filter.tar // 将filter.tar 文件上传
10.close // 关闭连接
11.bye // 退出ftp命令行