客户要求把图片服务器和程序相分离,直接把上传文件从服务器A使用ftp协议发送到服务器B.

    function ftpupload($farr){ //传递参数为$_FILES,用户form提交上传的文件变量
        $ftp_server = "8.8.8.8";  //ftp服务端ip地址
		$ftp_user_name = "statics"; //ftp用户名
		$ftp_user_pass = "dd97b9f6b5"; //ftp密码
		$conn_id = ftp_connect($ftp_server); 
		$file = $farr['pic']['tmp_name'];
		$arr = explode('.',$farr['pic']['name']);
		$arr = strtolower($arr[count($arr)-1]);
		if(!in_array($arr,array('jpg', 'gif', 'png', 'jpeg'))){
			return 0;
		}
		$remote_file = time().'.'.$arr; //随机文件名,防止重复 
		$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
		ftp_chdir($conn_id,'uploads');
		$exist_dir = ftp_nlist($conn_id,ftp_pwd($conn_id));
		$date = date("Y-m-d");
		$dir_name = '/uploads/'.$date;
		//按日期创建文件夹
		if(!in_array($dir_name, $exist_dir)){
			if(!ftp_mkdir($conn_id,$dir_name)){
				return 0;
			}
		}
		ftp_chdir($conn_id,$dir_name);
		if(ftp_put($conn_id, $remote_file,$file,FTP_BINARY)){ 
			return $date.'/'.$remote_file; //返回文件路径和名称,记录到数据库中以便调用
		}else{ 
			return 0; 
		} 
		ftp_close($conn_id);
	}


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。