• 0
  • 0

PHP CURL模拟文件上传代码

2020-07-13 772 0 admin 所属分类:PHP 记录
/*
	@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']);


返回顶部