Heim  >  Artikel  >  php教程  >  PHP通过FTP上传文件详解介绍

PHP通过FTP上传文件详解介绍

WBOY
WBOYOriginal
2016-06-13 11:19:311170Durchsuche

本文章来总结几个利用php中的ftp功能来实现通过FTP上传文件,有需要学习的朋友可参考参考。  

ftp_get() 函数从 FTP 服务器上下载一个文件。

若成功则返回 true,失败则返回 false。

语法
ftp_get(ftp_connection,local,remote,mode,resume)


ftp_connect() 函数建立一个新的 FTP 连接。

若成功,则返回一个连接标识,否则返回 false。

语法
ftp_connect(host,port,timeout)


ftp_login() 函数登录 FTP 服务器。

若成功则返回 true,失败则返回 false 并发出一个警告。

语法
ftp_login(ftp_connection,username,password)

三个函数己经介绍好了,现在开始了。

例1

 代码如下 复制代码

$ftp_server = "*.*.*.*";
$ftp_user = "lu";
$ftp_pass = "love you";

// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);

if ((!$conn_id) || (!$login_result)) {
        echo "FTP connection has failed!";
        echo "Attempted to connect to $ftp_server for user $ftp_user_name";
        exit;
    } else {
        echo "Connected to $ftp_server, for user $ftp_user_name";
    }

// try to login
 $filename=date('Ymd').".xml";
 $source_file="/usr/local/IVR/sendwireless/xml/data/".$filename;  //源地址
 echo $source_file;
 $destination_file="/ITC/admin/logstat/ftplog/".$filename;  //目标地址
 $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY) or die("Couldn't connect to $ftp_server");
 ftp_quit($conn_id);

 if (!$upload) {
        echo "FTP upload has failed!";
    } else {
        echo "Uploaded $source_file to $ftp_server as $destination_file";
    }
ftp_close($conn_id);


上传时先传至本地对文件作必要的修改,如加水印等等操作,然后再通过FTP传至远程服务器.

例2:

 代码如下 复制代码

//上传图片

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操作类:


ftpUrl=$ftpUrl;
}
if($ftpUser){
$this->ftpUser=$ftpUser;
}
if($ftpPass){
$this->ftpPass=$ftpPass;
}
if($ftpUrl){
$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);
}
}
?>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn