PHP7 以后使用 CURL 链接 FTP 上传文件
php7之后无法使用ssh2_connect()函数链接ftp服务器,找了很久之后发现CURL可以解决,写篇文章记录一下吧!
$localFile = '/var/www/test/a.txt';
$pathInfo = pathinfo($localFile);
$uploadFileName = $pathInfo['basename'];
$fileSize = fileSize($localFile);
$fh = fopen($localFile, 'r');//获取文件句柄, https://php.net/curl_setopt,文档里面也有人贡献代码,但是我测试不通过,作者写多了一个配置CURLOPT_PROTOCOLS => CURLPROTO_FTP,
$connection = 'ftp://xxxxx' . $uploadFileName;
$userPwd = 'root:password';//系统用户名:系统密码
$ch = curl_init();
curl_setopt_array(
$ch,
array(
CURLOPT_URL => $connection,
CURLOPT_USERPWD => $userPwd,
CURLOPT_UPLOAD => true,
CURLOPT_INFILE => $fh,
CURLOPT_INFILESIZE => $fileSize,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
)
);
curl_exec($ch);
if(curl_errno($ch) !== CURLE_OK){
throw new Exception(curl_error($ch));
}
curl_close($ch);
本作品采用《CC 协议》,转载必须注明作者和本文链接