Php ftp_put,可以创建文件夹,但不能上载文件
我在使用ftp时遇到了一个奇怪的问题 当连接到旧的linux服务器(ftp_connect)时,我的代码工作得很好,但在尝试将文件上载到新的windows服务器(客户端选择)时失败-我们正在windows服务器上运行Filezilla服务器Php ftp_put,可以创建文件夹,但不能上载文件,php,Php,我在使用ftp时遇到了一个奇怪的问题 当连接到旧的linux服务器(ftp_connect)时,我的代码工作得很好,但在尝试将文件上载到新的windows服务器(客户端选择)时失败-我们正在windows服务器上运行Filezilla服务器 可以连接到windows server works(ftp\U连接) 创建文件夹工作(ftp_mkdir) 上传文件不起作用-不知道为什么(ftp_-put) 我可以使用FileZilla上传文件 用户对Filezilla服务器具有完全权限 连接到wind
- 可以连接到windows server works(ftp\U连接)
- 创建文件夹工作(ftp_mkdir)
- 上传文件不起作用-不知道为什么(ftp_-put)
- 我可以使用FileZilla上传文件
- 用户对Filezilla服务器具有完全权限
- 连接到windows服务器时连接到“C:/FTP”
# Conf ID
$conf_id = '7AEHQ6GS'; // for testing
# Files
$file1 = "xml/$conf_id/cylinder-tube.xml";
# FTP info
$ftp_host = '';
$ftp_port = '';
$ftp_user = '';
$ftp_pass = '';
# Connect to FTP server
$conn_id = ftp_connect($ftp_host, $ftp_port, 10);
# Connect to FTP Server
if($conn_id) {
if(@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
if(file_exists($file1)) {
# Change directory
ftp_chdir($conn_id, 'SE');
# Create folder
ftp_mkdir($conn_id, $conf_id);
# Change directory
ftp_chdir($conn_id, $conf_id);
# Upload files
if(
ftp_put($conn_id, basename($file1), $file1, FTP_BINARY)
) {
# Delete local files
@unlink($file1);
# Delete local folder
rmdir("xml/$conf_id");
}else{
$st['status'] = 'FTP003';
die(json_encode($st));
}
}else{
$st['status'] = 'FEJL011';
die(json_encode($st));
}
} else {
$st['status'] = 'FTP002';
die(json_encode($st));
}
}else{
$st['status'] = 'FTP001';
die(json_encode($st));
}
这就是我的代码失败的地方:
ftp_put($conn_id, basename($file1), $file1, FTP_BINARY)
谢谢
Kenneth如果ftp\u put()
失败,很可能是由于防火墙保护。因此,发生这种情况是因为连接处于活动模式
在的帮助下切换到被动
模式,以通过防火墙安全
有关主动和被动FTP连接的更多详细信息,请参见如果FTP\u put()
出现故障,很可能是由于防火墙保护。因此,发生这种情况是因为连接处于活动模式
在的帮助下切换到被动
模式,以通过防火墙安全
有关主动和被动FTP连接的更多详细信息,请参见本地php服务器上的FTP_put($conn_id,cyline-tube.xml,xml/7AEHQ6GS/cyline-tube.xml,FTP_BINARY)“xml”文件夹。“SE”文件夹位于FTP服务器上:)啊!!对不起,我的错。尝试使用FTP_ASCII。还有,看这是被动模式!感谢链接(之前已经尝试过FTP_ASCII)。使用这种方法是可行的:ftp_pasv($conn_id,true)或die(“无法切换到被动模式”);谢谢你的帮助。你能用链接和ftp_pasv发布一个答案吗?这样我就可以接受你的解决方案了ftp_put($conn_id,cyline-tube.xml,xml/7AEHQ6GS/cyline-tube.xml,ftp_BINARY)“xml”文件夹位于本地php服务器上。“SE”文件夹位于FTP服务器上:)啊!!对不起,我的错。尝试使用FTP_ASCII。还有,看这是被动模式!感谢链接(之前已经尝试过FTP_ASCII)。使用这种方法是可行的:ftp_pasv($conn_id,true)或die(“无法切换到被动模式”);谢谢你的帮助。你能用链接和ftp_pasv发布一个答案吗?这样我就可以接受你的解决方案了