⑴ c#实现FTP下载
FtpWebRequestftpRequest=(FtpWebRequest)WebRequest.Create("ftp://.com/2010/1.exe");//ftp://.com/2010/1.exe是你要下载ftp文件地址
ftpRequest.Credentials=newNetworkCredential("user","user");//前一个user为用户名,后一个为密码
⑵ 如何用Java实现FTP服务器
在主函数中,完成服务器端口的侦听和服务线程的创建。我们利用一个静态字符串变量initDir 来保存服务器线程运行时所在的工作目录。服务器的初始工作目录是由程序运行时用户输入的,缺省为C盘的根目录。
具体的代码如下:
public class ftpServer extends Thread{
private Socket socketClient;
private int counter;
private static String initDir;
public static void main(String[] args){
if(args.length != 0) {
initDir = args[0];
}else{ initDir = "c:";}
int i = 1;
try{
System.out.println("ftp server started!");
//监听21号端口
ServerSocket s = new ServerSocket(21);
for(;;){
//接受客户端请求
Socket incoming = s.accept();
//创建服务线程
new ftpServer(incoming,i).start();
i++;
}
}catch(Exception e){}
}
⑶ FTP 信息代码全解
120 Service ready in nnn minutes.
服务在NNN时间内可用
125 Data connection already open; transfer starting.
数据连接已经打开,开始传送数据.
150 File status okay; about to open data connection.
文件状态正确,正在打开数据连接.
200 Command okay.
命令执行正常结束.
202 Command not implemented, superfluous at this site.
命令未被执行,此站点不支持此命令.
211 System status, or system help reply.
系统状态或系统帮助信息回应.
212 Directory status.
目录状态信息.
213 File status.
文件状态信息.
214 Help message.On how to use the server or the meaning of a particular non-standard command. This reply is useful only to the human user. 帮助信息。关于如何使用本服务器或特殊的非标准命令。此回复只对人有用。
215 NAME system type. Where NAME is an official system name from the list in the Assigned Numbers document.
NAME系统类型。
220 Service ready for new user.
新连接的用户的服务已就绪
221 Service closing control connection.
控制连接关闭
225 Data connection open; no transfer in progress.
数据连接已打开,没有进行中的数据传送
226 Closing data connection. Requested file action successful (for example, file transfer or file abort).
正在关闭数据连接。请求文件动作成功结束(例如,文件传送或终止)
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
进入被动模式
230 User logged in, proceed. Logged out if appropriate.
用户已登入。 如果不需要可以登出。
250 Requested file action okay, completed.
被请求文件操作成功完成
257 "PATHNAME" created.
路径已建立
331 User name okay, need password.
用户名存在,需要输入密码
332 Need account for login.
需要登陆的账户 西门吐血
350 Requested file action pending further information
对被请求文件的操作需要进一步更多的信息
421 Service not available, closing control connection.This may be a reply to any command if the service knows it must shut down.
服务不可用,控制连接关闭。这可能是对任何命令的回应,如果服务认为它必须关闭
425 Can`t open data connection.
打开数据连接失败
426 Connection closed; transfer aborted.
连接关闭,传送中止。
450 Requested file action not taken.
对被请求文件的操作未被执行
451 Requested action aborted. Local error in processing.
请求的操作中止。处理中发生本地错误。
452 Requested action not taken. Insufficient storage space in system.File unavailable (e.g., file busy).
请求的操作没有被执行。 系统存储空间不足。 文件不可用
500 Syntax error, command unrecognized. This may include errors such as command line too long.
语法错误,不可识别的命令。 这可能是命令行过长。
501 Syntax error in parameters or arguments.
参数错误导致的语法错误
502 Command not implemented.
命令未被执行
503 Bad sequence of commands.
命令的次序错误。
504 Command not implemented for that parameter.
由于参数错误,命令未被执行
530 Not logged in.
没有登录
532 Need account for storing files.
存储文件需要账户信息 西门吐血
550 Requested action not taken. File unavailable (e.g., file not found, no access).
请求操作未被执行,文件不可用。
551 Requested action aborted. Page type unknown.
请求操作中止,页面类型未知
552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset).
对请求文件的操作中止。 超出存储分配
553 Requested action not taken. File name not allowed
请求操作未被执行。 文件名不允许
这种错误跟http协议类似,大致是:
2开头--成功
3开头--权限问题
4开头--文件问题
5开头--服务器问题
对大家最有用的:
421:一般出现在连接数多,需稍后在接;
530:密码错误;
550:目录或文件已经被删除。
⑷ java中怎么实现ftp服务器
我知道apache有个commons net包,其中的FTPClient类可以实现客户端和服务之间的文件传输,但是我如果使用这种方式的话,就得将一台服务器上的文件传到我本地,再将这个文件传到另一台服务器上,感觉这中间多了一步操作;
⑸ 如何在Linux中部署ftp服务只需要代码
Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa | grep vsftpd 来查看是否安装相应的包,如果没有安装那么可以执行 yum -y install vsftpd 来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:useradd -s /sbin/nologin -d /home/ftp_test ftp_test
目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,
可以看到权限现在是对于ftp_test用户是可读可写可执行的,其他用户和组下面的都没有任何权限,现在为ftp_test用户创建密码:passwd ftp_test
执行之后输入2次密码确认就设置好了密码
然后编辑vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpd.conf
找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录
现在直接保存配置文件,执行 systemctl start vsftpd.service 启动vsftp服务,然后可以通过命令: systemctl status vsftpd.service 查看ftp服务的运行状态,现在就可以用ftp客户端进行连接了,这里用FileZilla测试,连接正常
现在基本的ftp服务就部署完了,客户端可以正常上传,下载,修改文件;但是这样有个问题就是所有的目录都暴露给客户端了,虽然客户端不能随意修改删除其余的文件,但是因为目录可见,所以总会有一些风险,所以接下来还需要配置让ftp用户只在自己的家目录下面活动,而无法查看其它任何目录,同样是打开配置文件/etc/vsftpd/vsftpd.conf,找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录里面活动,如果只是保存这一个配置的话,用ftp连接客户端会返回500
OOPS: ftp chaodiquan.com /vsftpd: refusing to run with writable root inside
chroot()的错误,即禁止运行在可写的家目录中,因为刚才ftp_test这个目录有w权限,而现在我们使用的vsftpd版本是3.0.2
属于比较新的版本,为了安全性做了一些限制,如果你此时想通过 chmod a-w /home/ftp_test 来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限,
配置完这两项以后保存退出,然后执行 systemctl restart vsftpd.service 重启vsftpd服务,现在重新使用ftp连接就成功了,并且任何操作也是没问题的
现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下操作,而无法跳出这个目录
以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户
⑹ 急!用VB代码实现FTP的上传和下载(高分)
要实现在这个代码太多,在这里发有点不太现实,VB 实现 FTP 用 WinSock 控件或API。
做该类程序主要是握手控制,即返回值的处理并做相应传输,另外就是了解每个 FTP 命令的作用,这样做个 FTP 服务端或客户端都不是什么难事。
⑺ java FTP下载文件在代码中如何实现知道下载完成
(KmConfigkmConfig,StringfileName,StringclientFileName,OutputStreamoutputStream){
try{
StringftpHost=kmConfig.getFtpHost();
intport=kmConfig.getFtpPort();
StringuserName=kmConfig.getFtpUser();
StringpassWord=kmConfig.getFtpPassword();
Stringpath=kmConfig.getFtpPath();
FtpClientftpClient=newFtpClient(ftpHost,port);//ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
ftpClient.login(userName,passWord);//userName、passWord分别为FTP服务器的登陆用户名和密码
ftpClient.binary();
ftpClient.cd(path);//path为FTP服务器上保存上传文件的路径。
try{
TelnetInputStreamin=ftpClient.get(fileName);
byte[]bytes=newbyte[1024];
intcnt=0;
while((cnt=in.read(bytes,0,bytes.length))!=-1){
outputStream.write(bytes,0,cnt);
}
//##############################################
//这里文件就已经下载完了,自己理解一下
//#############################################
outputStream.close();
in.close();
}catch(Exceptione){
ftpClient.closeServer();
e.printStackTrace();
}
ftpClient.closeServer();
}catch(Exceptione){
System.out.println("下载文件失败!请检查系统FTP设置,并确认FTP服务启动");
}
}
⑻ VB找一段FTP代码实现
用VB代码实现对FTP的上传和下载.在网上找到了个方法.
这个方法是用INTERNET传输控件来实现的.
添加了INTERNET传输控件后VB代码如下"
'初始化控件的属性:
With Inet1
.URL = "ftp://192.168.0.50"
.UserName = "user"
.Password = "123"
.Protocol = icFTP
.RequestTimeout = 120
End With
,在FTP根目录下创建文件夹abc
Call Inet1.Execute(, "mkdir abc")
,在FTP根目录下载123.txt到D盘
Call Inet1.Execute(, "get 123.txt d:\123.txt")
'把d:\123.txt上传到FTP根目录
Call Inet1.Execute(, "put d:\123.txt 123.txt")
'把d:\123.txt上传到FTP根目录
Call Inet1.Execute(, "send d:\123.bmp")
⑼ 我想登录一个ftp然后把某个目录的所有文件考到另一个ftp的目录的某个文件夹下用java代码实现
用的commons-net包中的FTPClient
ftp1为拷贝目录,ftp2为被拷贝目录
你先登录ftp2调用ftp1,
ftpClient1.changeWorkingDirectory(path);
InputStream inputStream = ftpClient1.retrieveFileStream(file.getName());
用这个代码应该可以从ftp1中获得一个inputStream ,在ftp2中可以做上传操作
目录的话ftp2还要做递归存放到list中,ftp2遍历上传. 其实我也没做这个,希望思路有点帮助,应该可以实现.good luck!~~~
⑽ php中如何实现ftp上传基础代码
p工具我们都用过是用来上传文件的,那么在php中如何用代码实现呢,下面简单介绍一个最基础最简单的列子,首先根据我们使用ftp工具来说,实现文件上传需要打开ftp工具->输入ftp地址,端口号,账号,密码登陆ftp->从本地选择相应文件上传到ftp相应目录,php中要实现这么一个简单的功能无非也是这样。
第一步:打开ftp
$ip="101.101.101.101";
$name="name";
$pwd="mima";
$con=ftp_connect($ip,"21")
or("连接失败");
第二步:登陆ftp
ftp_login($con,$name,$pwd);
第三步:上传本地test.php文件到ftp
image目录下
ftp_put($con,"image/test.php","test.php",FTP_ASCII);
此时在ftp上的image目录下可以看到test.php文件了,当然这里上传文件,可以扩展下写个上传表单,将表单附件上传ftp这样就更方便,这里只作为一个文件最基础上传ftp功能。