PHP之FTP、SFTP上传下载
对接三方时遇见接口采用文件加密后使用FTP或SFTP传输,使用PHP对接。所以产生了本篇文章(基于TP3.2)。本篇文章包括以下几点:
- 基本代码
- 使用方法
- PHP之SFTP扩展库编译安装注意事项
转载请注明 —— [ 肖义熙 ]
一、PHP之FTP、SFTP代码,拷贝直接用
FTP及SFTP官方文档详见:
http://php.net/manual/en/book.ftp.php
http://php.net/manual-lookup.php?pattern=SFTP&scope=quickref
以下为本文最核心代码,拷贝直接使用:
1、FTP
- TP3.2存放类文件目录下(Common/Org/)新建php文件:ftp.class.php
<?php
/********************************************
* MODULE:FTP类
*******************************************/
class ftp
{
public $off; // 返回操作状态(成功/失败)
public $conn_id; // FTP连接
/**
* 方法:FTP连接
* @FTP_HOST -- FTP主机
* @FTP_PORT -- 端口
* @FTP_USER -- 用户名
* @FTP_PASS -- 密码
*/
function __construct($FTP_HOST,$FTP_PORT,$FTP_USER,$FTP_PASS)
{
$this->conn_id = @ftp_connect($FTP_HOST,$FTP_PORT) or die("FTP服务器连接失败");
@ftp_login($this->conn_id,$FTP_USER,$FTP_PASS) or die("FTP服务器登陆失败");
@ftp_pasv($this->conn_id,1); // 打开被动模拟
}
/**
* 方法:上传文件
* @path -- 本地路径
* @newpath -- 上传路径
* @type -- 若目标目录不存在则新建
*/
function up_file($path,$newpath,$type=true)
{
if($type) $this->dir_mkdirs($newpath);
$this->off = @ftp_put($this->conn_id,$newpath,$path,FTP_BINARY);
if(!$this->off) echo