最近php升级到5.6了,以前能用的curl上传图片都不能用了,然后一直找方法解决。今天搞定,记录一下,一边以后用上
$imgid = "在一台服务器上的地址"
$img_save_path ='另外一台服务器图片保存路径';
$post_url = '.php文件';
if (class_exists('\CURLFile')) {//php>5.4
$post_data = array(
"path" => $img_save_path,
"image" => new \CURLFile($imgid)
);
} else {
$post_data = array(
"path" => $img_save_path,
"image" => '@'.$imgid
);
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $post_url);
curl_setopt($curl, CURLOPT_POST, 1 );
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
php 文件
define('ROOT_PATH', $_SERVER['DOCUMENT_ROOT']);
if(trim($_POST['path']) == ''){
$msg = '保存路径不一致!';
$returnArr = array('status'=>0, 'msg'=>$msg);
echo json_encode($returnArr);
exit;
}
if(empty($_FILES['image']['name'])){
$msg = '未选择上传图片!';
$returnArr = array('status'=>0, 'msg'=>$msg);
echo json_encode($returnArr);
exit;
}
$save_name = str_replace('.jpg','',$_FILES['image']['name']);
$returnArr = uploadFile('image',ROOT_PATH.trim($_POST['path']),$save_name);
echo json_encode($returnArr);
exit;