/*
@comment 模拟文件上传到指定地址
@params $furl 本地资源路径 $url 远程请求地址 $data 额外的post参数
*/
function upload_file($furl, $url, $data = array()) {
if (version_compare(PHP_VERSION, '5.5.0', '<')) {
//要上传的本地文件地址
$data['file'] = "@" . realpath($furl);
} else {
// PHP5.5以上必须使用这种方式上传文件
$data['file'] = new \CURLFile(realpath($furl));
}
// 初始化
$ch = curl_init();
// 设置变量
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); //执行结果是否被返回,0是返回,1是不返回
curl_setopt($ch, CURLOPT_HEADER, 0); //参数设置,是否显示头部信息,1为显示,0为不显示
//表单数据,是正规的表单设置值为非0
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100); //设置curl执行超时时间最大是多少
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
ob_start();
$result = curl_exec($ch);
$output = ob_get_contents();
$info = curl_getinfo($ch);
ob_end_clean();
curl_close($ch);
if ($result) {
return $info['http_code'] == 200 ? true : false;
} else {
return false;
}
}
upload_file('./data/attachment/5ea3a01976357102160.jpg','https://www.mydomain.common/?_=upload',['data'=>'hello','filename'=>'test.png']);