您好我正在尝试将上传的图像移动到作为备份服务器的远程服务器。因此,如果我上传图像,它会自动通过 curl 将文件发送到备份服务器。
上传、重命名和移动图像完美上传,但我遇到的唯一问题是将数据复制到远程服务器。
我的上传/重命名/移动图像功能。
function imageUpload($dateiIn,$maxDateiGr,$maxDateix,$maxDateiy) {
if($_FILES[$dateiIn]['size']>0) {
if(checkUploadSize($_FILES[$dateiIn]['size'],$maxDateiGr)) {
if($dateiEndung = imageCheckSize($_FILES[$dateiIn]['tmp_name'],$maxDateix,$maxDateiy)) {
$md5datei = md5_file($_FILES[$dateiIn]['tmp_name']).'_'.rand(10000,99999);
if(move_uploaded_file($_FILES[$dateiIn]['tmp_name'],'/var/www/thumbs/'.$md5datei.$dateiEndung)) {
return $md5datei.$dateiEndung;
}
else { return false; }
}
else { return false; }
}
else { return false; }
}
else { return false; }
}
$md5datei = 文件名 $dateiEndung = 文件格式 (jpg)
现在我尝试做的是以下内容:
function imageUpload($dateiIn,$maxDateiGr,$maxDateix,$maxDateiy) {
if($_FILES[$dateiIn]['size']>0) {
if(checkUploadSize($_FILES[$dateiIn]['size'],$maxDateiGr)) {
if($dateiEndung = imageCheckSize($_FILES[$dateiIn]['tmp_name'],$maxDateix,$maxDateiy)) {
$md5datei = md5_file($_FILES[$dateiIn]['tmp_name']).'_'.rand(10000,99999);
if(move_uploaded_file($_FILES[$dateiIn]['tmp_name'],'/var/www/thumbs/'.$md5datei.$dateiEndung)) {
$filename = '/var/www/thumbs/'.$md5datei.$dateiEndung;
$handle = fopen($filename, "r");
$data = fread($handle, filesize($filename));
$POST_DATA = array('file'=>base64_encode($data));
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://external.net/upload.php');
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $POST_DATA);
$response = curl_exec($curl);
curl_close ($curl);
// return name to be able to write it inside the database
return $md5datei.$dateiEndung;
}
else { return false; }
}
else { return false; }
}
else { return false; }
}
else { return false; }
}
在 external.net 服务器上,我得到了 upload.php 文件:
<?PHP
$encoded_file=$_POST['file'];
$decoded_file=base64_decode($encoded_file);
$dest = "/var/www/thumbs/".$decoded_file;
/*Now you can copy the uploaded file to your server.*/
file_put_contents($dest,$decoded_file);
?>
但是该文件仍然没有落在外部服务器上的 /var/www/thumbs 文件夹中。
而且两个错误日志都是空的,我不知道没有错误该怎么办..