这几天需要向文件服务器上传一些文件,但是不想在文件服务器部署代码,所以考虑用ftp上传文件。
但是线上服务器又不支持ftp扩展,所以考虑用curl上传,同时上传需要生成文件夹。
网上的方法都不支持文件夹生成,在curl参数里找到一个参数来支持。
function upload($dir,$src,$dest)
{
$ch = curl_init();
$fp = fopen($src, 'r');
curl_setopt($ch, CURLOPT_URL, 'sftp://user:password@ftp_host/tmp/'.$dir .'/'. $dest);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_FTP_CREATE_MISSING_DIRS, TRUE);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($src));
curl_exec ($ch);
$error_no = curl_errno($ch);
curl_close ($ch);
if ($error_no != 0)
{
return 0;
}else{
return 1;
}
}
upload("dir","lizi.png","test/lizi.png");