本地form表单
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="./form.php" method="post" enctype="multipart/form-data">
<input type="file" name="img">
<input type="submit" value="submit">
</form>
</body>
</html>
本地服务器
<?php
/**图片跨服务器上传,利用curl推送,推送成功后删除本地图片*/
header('content-type:text/html;charset=utf8');
$file = $_FILES['img'];
if ($file['error'] == 0){
$path = './'.$file['name'];
$moveRs = move_uploaded_file($file['tmp_name'],$path);
//上传到其他服务器
$url = 'http://test.top/receive.php';//test.top远端域名
if($moveRs){
$rs = http_curl($path,$url);
echo "图片".$rs."上传到资源服务器成功";
}
}
function http_curl($path,$url){
$curl = curl_init();
if (class_exists('\CURLFile')) {
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);
$data = array('file' => new \CURLFile(realpath($path)));//>=5.5
}else{
if (defined('CURLOPT_SAFE_UPLOAD')) {
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
}
$data = array('file' => '@' . realpath($path));//<=5.5
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1 );
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT,"TEST");
$result = curl_exec($curl);
return $result;
}
远端接收处理
<?php
header('content-type:text/html;charset=utf8');
$filename = $_FILES['file']['name'];
$tmpname = $_FILES['file']['tmp_name'];
$url = './Upload/bookimg/';
if(move_uploaded_file($tmpname, $url.$filename))
{
echo json_encode($filename);
}