php通过ftp传文件,PHP通过FTP上传文件
上传时先传至本地对文件作必要的修改,如加水印等等操作,然后再通过FTP传至远程服务器.
//上传图片
if ($_FILES[‘pic’][‘name’])
{
$file_path=’/opt/www/img/‘;
$pic = upload(‘pic’, $filename, ‘jpg|jpeg|gif|bmp|png’, $file_path);
if(!$pic)
{
echo “”;
exit;
}
require_once(ROOT_PATH . ‘Lib/Class/Ftp.class.php’);
$ftp = new ftp(“127.0.0.1”,”gamezeroftp”,”123456”,”/opt/www”);
$localfile=’/opt/www/img/‘.$pic;
$remotefile=’/opt/www/gamepics/‘.$pic;
$ftpput = $ftp->put($localfile, $remotefile); //FTP上传原图到远程服务器
if(!$ftpput){
echo “上传图片到远程服务器失败!”;
}
$ftp->bye(); //关闭FTP连接
}
附上FTP操作类:
class ftp
{
var $ftpUrl = ‘10.8.16.26’;
var $ftpUser = ‘user’;
var $ftpPass = ‘123456’;
var $ftpDir = ‘/opt/ftp/upload/‘;
var $ftpR = ‘’; //R ftp资源;
var $status = ‘’;
//R 1:成功;2:无法连接ftp;3:用户错误;
function ftp($ftpUrl=””, $ftpUser=””, $ftpPass=””, $ftpDir=””)
{
if($ftpUrl)
{
$this->ftpUrl=$ftpUrl;
}
if($ftpUser)
{
$this->ftpUser=$ftpUser;
}
if($ftpPass)
{
$this->ftpPass=$ftpPass;
}
if($ftpDir)
{
$this->ftpDir=$ftpDir;
}
if ($this->ftpR = ftp_connect($this->ftpUrl, 21))
{
if (ftp_login($this->ftpR, $this->ftpUser, $this->ftpPass))
{
if (!empty($this->ftpDir))
{
ftp_chdir($this->ftpR, $this->ftpDir);
}
ftp_pasv($this->ftpR, true);//R 启用被动模式;
$status = 1;
}
else
{
$status = 3;
}
}
else
{
$status = 2;
}
}
//R 切换目录;
function cd($dir)
{
return ftp_chdir($this->ftpR, $dir);
}
//R 返回当前路劲;
function pwd()
{
return ftp_pwd($this->ftpR);
}
//R 创建目录
function mkdir($directory)
{
return ftp_mkdir($this->ftpR,$directory);
}
//R 删除目录
function rmdir($directory)
{
return ftp_rmdir($this->ftpR,$directory);
}
//R 上传文件;
function put($localFile, $remoteFile = ‘’)
{
if ($remoteFile == ‘’)
{
$remoteFile = end(explode(‘/‘, $localFile));
}
$res = ftp_nb_put($this->ftpR, $remoteFile, $localFile, FTP_BINARY);
while ($res == FTP_MOREDATA)
{
$res = ftp_nb_continue($this->ftpR);
}
if ($res == FTP_FINISHED)
{
return true;
}
elseif ($res == FTP_FAILED)
{
return false;
}
}
//R 下载文件;
function get($remoteFile, $localFile = ‘’)
{
if ($localFile == ‘’)
{
$localFile = end(explode(‘/‘, $remoteFile));
}
if (ftp_get($this->ftpR, $localFile, $remoteFile, FTP_BINARY))
{
$flag = true;
}
else
{
$flag = false;
}
return $flag;
}
//R 文件大小;
function size($file)
{
return ftp_size($this->ftpR, $file);
}
//R 文件是否存在;
function isFile($file)
{
if ($this->size($file) >= 0)
{
return true;
}
else
{
return false;
}
}
//R 文件时间
function fileTime($file)
{
return ftp_mdtm($this->ftpR, $file);
}
//R 删除文件;
function unlink($file)
{
return ftp_delete($this->ftpR, $file);
}
function nlist($dir = ‘/service/resource/‘)
{
return ftp_nlist($this->ftpR, $dir);
}
//R 关闭连接;
function bye()
{
return ftp_close($this->ftpR);
}
}
还没有评论,来说两句吧...