(PHP 5 >= 5.5.0, PHP 7)
CURLFile::getFilename — 获取被上传文件的 文件名
public CURLFile::getFilename ( void ) : string
类:CURLFile() 打开文件
realpath() 获取文件全路径
/**
* @param $file 文件相对路径
* @param string $url 请求url
* @param $folder 文件夹存储位置
* @return mixed|string
*/
function archivedFile($file, $url='',$folder)
{
/**
* CURLFile 获取是文件所在服务器的绝对路径
*
* 错误:文件的url
* "http://115.29.100.100:8117/HuabaVideo/2019-08-11/20190811144440.mp4"
*
* 正确:文件所在方法的相对路径,需要使用realpath()获取全路径
* "../public/HuabaVideo/2019-08-11/20190811143124.mp4"
*/
$data = [
// 将文件打成数据流的方法.
'file'=>new \CURLFile(realpath($file)),
'type'=> $folder,
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //该curl_setopt可以向header写键值对
curl_setopt($ch, CURLOPT_HEADER, false); // 不返回头信息
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
if ($output == false){
return 'error:' . curl_error($ch);
}
curl_close($ch);
$err = json_decode($output, true);
return $err;
}