www.gusucode.com > ShopEx481 & PHPWind 整合版码程序 > plugins/functions/ftp_storage.php

    <?php
/**
 * Storager:图片文件的存储方式
 * 本插件可用来将图片上传到指定的ftp服务器上
 *
 * 系统配置项:
 * system.storager.ftp.url  ->  访问地址前缀
 * system.storager.ftp.server  ->  访问地址前缀
 * system.storager.ftp.uname -> ftp用户名
 * system.storager.ftp.password  -> ftp密码
 * system.storager.ftp.dir  -> 上传路径
 * 
 */
 
define(__FTP_SERVER__,"192.168.0.114");
define(__FTP_UNAME__,"hjx");
define(__FTP_PASSWD__,"hjxisking");
define(__FTP_DIR__,"/shopex/");
 
class ftp_storage{

	function save($path='',$url,$id){

		$system = &$GLOBALS['system'];
		
		$fp = fopen(BASE_DIR.$path, 'rb');

		$id = $path;
		$url = "http://" . __FTP_SERVER__ . "/" . $path;
		
		$ftp_path = __FTP_DIR__ . "/" . $path;
		$file = $ftp_path;

		// connect to the server
		$conn_id = ftp_connect(__FTP_SERVER__);
		$login_result = ftp_login($conn_id, __FTP_UNAME__, __FTP_PASSWD__);


		$d=split("/", $ftp_path);
		$ftp_path="";

		if(substr(__FTP_DIR__,0,1) == "/"){
			$i = 1;
		}
		else{
			$i = 0;
		}
		
		for ($i;$i<count($d)-1;$i++)
		{
			$ftp_path.="/".$d[$i];
			if(!@ftp_chdir($conn_id,$ftp_path)){
				@ftp_chdir($conn_id,"/");
				if(!@ftp_mkdir($conn_id,$ftp_path)){
					return false;
				}
			} 
		}

		// try to upload the file
		ftp_fput($conn_id, $file, $fp, FTP_BINARY);
		
		$o = $system->loadModel('goods/gimage');
		foreach($o->defaultImages as $tag){
			$ext = $o->getImageExt(BASE_DIR.$path);
			$otherimage = substr(BASE_DIR.$path,0,strlen(BASE_DIR.$path)-strlen($ext)) . "_" . $tag . $ext;
			if(file_exists($otherimage)){
				$fp = fopen($otherimage,'rb');
				ftp_fput($conn_id, $ftp_path."/".basename($otherimage), $fp, FTP_BINARY);
				fclose($fp);
				@unlink($otherimage);
			}
		}
		@unlink(BASE_DIR.$path);
		
		// close the connection and the file handler
		ftp_close($conn_id);
		fclose($fp);

		return true;
	}

	function remove($ident){
		$conn_id = ftp_connect(__FTP_SERVER__);
		$login_result = ftp_login($conn_id, __FTP_UNAME__,__FTP_PASSWD__);
		$ret = ftp_delete($conn_id,__FTP_DIR__ . "/" .$ident);
		ftp_close($conn_id);
		return $ret;
	}

}
?>