2013-11-12 3 views
1

Привет, я пытаюсь переместить загруженное изображение на удаленный сервер, который работает как резервный сервер. Таким образом, если я загружу изображение, он автоматически отправит файл на резервный сервер через 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); 
?> 

Но файл по-прежнему не приземлится внутри/вар/WWW/палец папки на доб ernal server.

И оба журнал ошибки пуст, и я больше не знаю, что делать без ошибок ..

ответ

2

как о изменяют

$POST_DATA = array('file'=>base64_encode($data),'FILENAME'=>$filename); 

и upload.php

$dest = "/var/www/thumbs/".$decoded_file; 

до

$dest = "/var/www/thumbs/".$_POST['FILENAME']; 

, а затем введите код

+0

$ dest = "/var/www/thumbs/".$_POST['FILENAME ']; до $ dest = $ _POST ['FILENAME']; и теперь это работает. – user2943347

Смежные вопросы