ftpphp_php ftp文件上传

function copyViaFtpRecursively($uploadLocation, $previewPath, $remoteDirectory, $ftpType)

{

$errorMessage = '';

$connectionId = getFtpConnection($uploadLocation['host'], $uploadLocation['username'], $uploadLocation['password'], $uploadLocation['port']);

switch($ftpType)

{

case 'active':

ftp_pasv($connectionId, False);

break;

case 'passive':

ftp_pasv($connectionId, True);

break;

}

$baseDirectory = $uploadLocation['baseDirectory'];

if(substr($baseDirectory, strlen($baseDirectory) - 1, 1) != '/')

{

$baseDirectory .= '/';

}

ftp_mkdir($connectionId, $baseDirectory); // No point showing an error message if the directory exists (most likely cause of error) because it will exist (at least) after the first time.

$remoteBaseDirectory = $baseDirectory.$remoteDirectory;

if(substr($remoteBaseDirectory, strlen($remoteBaseDirectory) - 1, 1) == '/')

{

$remoteBaseDirectory = substr($remoteBaseDirectory, 0, strlen($remoteBaseDirectory) - 1);

}

$remoteBaseDirectory .= '/';

$errorMessage .= copyFileViaFtp($previewPath, $remoteBaseDirectory, $connectionId);

ftp_close($connectionId);

$errorHtml = '';

if($errorMessage)

{

$errorHtml = nl2br($errorMessage);

}

return $errorHtml;

}

function getFtpConnection($host, $username, $password, $port)

{

$connectionId = ftp_connect($host);

if(!@ftp_login($connectionId, $username, $password))

{

webServiceError('FTP error. Unable to connect to "'.$host.'" with username "'.$username.'"');

}

return $connectionId;

}

function copyFileViaFtp($sourcePath, $destinationPath, $connectionId)

{

$errorMessage = '';

$sourcePath = str_replace(" ", "-", $sourcePath);

$destinationPath = str_replace(" ", "-", $destinationPath);

if(!ftp_mkdir($connectionId, $destinationPath))

{

$errorMessage .= "Unable to create directory at ".$destinationPath." (it may already exist) ";

}

ftp_site($connectionId, 'CHMOD 0777 '.$destinationPath);

ftp_chdir($connectionId, $destinationPath);

//print $sourcePath.' to '.$destinationPath."
";

if(is_dir($sourcePath))

{

chdir($sourcePath);

$handle=opendir('.');

while(($file = readdir($handle))!==false)

{

if(($file != ".") && ($file != ".."))

{

if(is_dir($file))

{

$errorMessage .= copyFileViaFtp($sourcePath.DIRECTORY_SEPARATOR.$file, $file, $connectionId);

chdir($sourcePath);

if(!ftp_cdup($connectionId))

{

$errorMessage .= "Unable to ftp_cdup. ";

}

}

else

{

if(substr($file, strlen($file) - 4, 4) != ".zip")

{

$fp = fopen($file,"r");

if(!ftp_fput($connectionId, str_replace(" ", "_", $file), $fp, FTP_BINARY))

{

$errorMessage .= "Unable to ftp_fput(). ";

}

ftp_site($connectionId, 'CHMOD 0755 '.str_replace(" ", "_", $file));

}

}

}

}

closedir($handle);

}

return $errorMessage;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值