我已经在 C/S 程序里测试成功,能够实现 FTP 服务器的上传下载,
可是当我通过 B/S 模式上传下载时候,会提示错误,
而且获取的 FTP 里的文件列表页跟从 B/S 里获取的文件列表不相同,
从 B/S 里获取的文件列表明显少了很多,
就下载而言,也只能下载到网站的服务器上,不能下载到客户端上,
是不是 B/S 就是不能实现 FTP 文件的上传下载呢?
感谢各位大大过来留下脚印....
你的问题如果我没理解错,应该不难。
如果如2楼所言,你暴露了(提供了)ftp相关登录信息,那么可以用 url 的形式,使得 Web 的使用者,以客户端的形式直接连接到 ftp Server 进行类似你的 bs 方式的下载,只是 url 自动调用 ie 等下载器进行协议解析,而不是使用你的程序而已。
如果你是需要 web 服务器连接到 ftp 服务器下载,再转给 web 客户端,这个也可以,出于安全考虑,这样的形式不能说没有意义。你现有的实现其实是实现了一半,即下载到了 web 服务器,接下来就是让 web 客户端再从服务端下载了;这个基本上就不用代码的事,你只要给你 web 服务器上的 ftp 下载好的临时文件一个 url,那么客户端点击的时候就能下载了。
比如:自定义ftp连接地址:myftp://server=127.0.0.1&file=folder/mytest.txt,那么你的 web 服务器下载到某临时文件夹 c:/WebRoot/temp/,你的 Web 根目录是 c:/WebRoot/,下载完成后, web 客户端只要点击连接 http://www.yourwebsitehome.com/temp/mytest.txt 就会直接通过 http 下载了。
客户端要求ftp下载时,采用 ajax 轮询 web ,服务器下载完成后就转给客户端临时文件进行下载。
=====================================
如果不考虑安全,自然二楼方案最好。
如果你写的是服务端代码,那当然只能下载到服务器。
如果能够写在客户端(貌似很难实现),那就可以客端。
在客户端,只要url这样写就行了:ftp://username:password@url
但是会暴露ftp用户名和密码,所以,怎么设账号就看安全性了。