假设这里有两台计算机,IP及端口分别是192.168.11.113:8080,192.168.11.77:8080
现在想要实现功能:
1.远程上传:使用curl将图片从192.168.11.113post传输到192.168.11.77上
2.远程删除:在192.168.11.113提交请求,删除192.168.11.77上的图片
192.168.11.113 sendFile.php:
<?php
/**
* 远程上传,远程删除
* @param string $op
* @param strint $filename
* @return false/'delete succ'/'upload succ'
*/
function send_curl_upload($op,$filename){
switch($op){
case'delete':
$field = array('op'=>'delete','fieldname'=>$filename);//远程端图片路径
break;
case 'upload':
if (class_exists('\CURLFile')) {
$field = array('op'=>'upload','fieldname' => new \CURLFile(realpath($filename)));//php5.5以上
} else {
$field = array('op'=>'upload','fieldname' => '@' . realpath($filename));//兼容php5.5以下版本
}
break;
default:
break;
}
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,'http://192.168.11.77:8080/receive.php'); //远程接收文件
curl_setopt($ch,CURLOPT_POST,1);
if (class_exists('\CURLFile')) {
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
} else {
if (defined('CURLOPT_SAFE_UPLOAD')) {
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
}
}
curl_setopt($ch,CURLOPT_POSTFIELDS,$field);
curl_exec($ch);
$return = curl_multi_getcontent($ch);
curl_close($ch);
return $return;
}
/*
//删除图片
$op = 'delete';
//$remotefile = 'http://192.168.11.77:8080/uploadimg/new.jpg';
$remotefile = 'uploadimg/new.jpg';
echo send_curl_upload($op,$remotefile);
*/
//上传图片
$op = 'upload';
$localfile = 'category-pic-110.jpg';
echo send_curl_upload($op,$localfile);
?>
192.168.11.113 receiveFile.php:
<?php
#删除图片
if($_POST['op'] == 'delete' && file_exists(str_replace('\\','/',__DIR__).'/'.$_POST['fieldname'])){
@unlink($_POST['fieldname']);
echo 'delete succ';
}
#上传图片
if($_POST['op'] == 'upload' && file_exists($_FILES['fieldname']['tmp_name'])){
if(move_uploaded_file($_FILES['fieldname']['tmp_name'],str_replace('\\','/',__DIR__).'/'.'uploadimg/new.jpg'))
echo 'upload succ';
}
#无效操作
echo false;
?>