您好我试图将上传的图像移动到作为备份服务器的远程服务器。因此,如果我上传图像,它将自动通过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 / thumb文件夹中。
两个错误日志都是空的,我不知道该怎么办没有错误..
答案 0 :(得分:3)
我们如何改变
$POST_DATA = array('file'=>base64_encode($data),'FILENAME'=>$filename);
并在upload.php
$dest = "/var/www/thumbs/".$decoded_file;
到
$dest = "/var/www/thumbs/".$_POST['FILENAME'];
然后运行代码