前言:百度虽然强,但是确实鱼龙混杂,找个curl模拟post上传附件,方法众多,但是真的很多坑,
curl模拟post上传附件最优雅的解决方案
$param = array(
'file_one' => curl_file_create('/home/images/a.jpg'), //文件1
'file_two' => curl_file_create('/home/images/b.png'), //文件2
'test' => 'test'
);
$url = 'http://xxx/xx/xx'; //
$ch = curl_init($url); //初始化CURL
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $param); //POST请求
$result = curl_exec($ch); //执行
print_r($result );
//服务端接收
$file = $_FILES;
$post = $_POST
读取远程url图片并下载到本地
/**
$path保存图片的地址
$url要获取的远程图片地址
**/
function getimg($path,$url){
$aext = explode('.', $url);
$ext = end($aext);
$name = $path.'/'. time() . '.' . $ext;
$source=file_get_contents($url);
file_put_contents($name,$source);
return $name;
}
结束:这次的操作主要是实现转移数据,暂时没有找到最好的解决方案,只能从远程url下载了图片附件然后再上传到ftp的方法,因为要过一个中间表,其中还要注意其中如果是上传单个文件和多个文件时候在后台接受的文件格式是不同,
网友评论