MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

ftp笔记

Posted on 2008-09-26 16:02 leekiang 阅读(979) 评论(0)  编辑  收藏 所属分类: ftp,http,tcp,udp等
1,用filezilla服务器时可以方便的给一个用户分配多个目录,先设置一个主目录,别的目录可以用别名(必须以"/"符号开头),这样别的目录就虚拟为主目录下的子目录了。不知道支不支持设置局域网里的其他机器的文件夹,要是支持就更好了。

2,ftp 文件上传服务器设置的几点经验和窍门!
http://hi.baidu.com/wgzx/blog/item/554976affaa3d1fffbed5098.html

3,FileZilla FTP Server安装设置教程
FileZilla Server Interface-->edit-->settings-->general settings-->Max.Number of users(允许最大并发连接客户端的数量)

4,http://www.blogjava.net/yegucheng/archive/2007/10/26/156008.html
在使用apache的net包处理Serv-U和x-lighgt时遇到的几点不同
进入一个空目录:
 在serv-U下,调用fTPClient.changeWorkingDirectory("")方法没有任何问题(指向一个空的目录)
 在x-light下,调用方法,会返回501信息
当下载完文件后:
 使用 fTPClient.retrieveFileStream(url)方法下载文件,在serv-U下,可以直接下载下一个文件
 但是在x-light下,调用 fTPClient.retrieveFileStream(url)方法后,
 必须执行 fTPClient.completePendingCommand()方法,关闭当前下载操作,
 才能执行下一个下载任务(在net包的API中有相关的规定)。

5,摘自http://blog.csdn.net/wangjian5748/archive/2008/11/28/3404619.aspx
commons-net的FTPClient,在使用public InputStream retrieveFileStream(String remote)
方法时需要特别注意,在调用这个接口后,一定要手动close掉返回的InputStream,然后再调用completePendingCommand方法,若不是按照这个顺序,则不对,伪代码:
  1. InputStream is = ftpClient.retrieveFileStream(remote);
  2. is.close();
  3. ftpClient.completePendingCommand();
retrieveFileStream的API文档说的有点罗嗦,还可以使用下列方法来替换上述使用方式
使用一个中间文件来做一个转接,这种方式比上述方法的好处就是自己容易控制,不容易出问题。伪代码如下:
  1. File localFile = new File(localPath, localFileName);
  2. OutputStream output = new FileOutputStream(localFile);
  3. ftpClient.retrieveFile(remoteFileName, output);
  4. output.close();
  5. InputStream input = new FileInputStream(localFile);
关于原因这里有比较具体的分析:http://marc.info/?l=jakarta-commons-user&m=110443645016720&w=2
简单来说:completePendingCommand()会一直在等FTP Server返回226 Transfer complete,但是FTP Server只有在接受到InputStream执行close方法时,才会返回。所以先要执行close方法

6,
Java实现的ftp服务器 源代码

7,java ftp
http://hi.baidu.com/montaojavahome/blog/item/d8d2691e1236241940341722.html

使用J-FTP上传下载




只有注册用户登录后才能发表评论。


网站导航: