2015-01-02 4 views
1

Я хочу загрузить изображение на другой сервер. Изображение загружается. но это не в правильном формате. Для этого кода он работает файл.Загрузка файла изображения на другой сервер

ЖЕ SERVER (РАБОЧАЯ)

$file_path = "./media/"; 

$file_path = $file_path . basename($_FILES['uploaded_file']['name']); 
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) { 
    echo "success"; 
} else{ 
    echo "fail"; 
} 

ДРУГОЙ SERVER (РАБОТА, НО НЕ ПОЛУЧАТЬ АКТУАЛЬНО IMAGE)

$file_name = $cus_id . ".jpg"; 
$file_path = CUS_PROFILE_PIC_DOCROOT . $file_name; 

$ftp_server = "some_address"; 
$ftp_user = "username"; 
$ftp_password = "password"; 
$conn = ftp_connect($ftp_server) or die ("Cannot connect to host"); 
if (@ftp_login($conn, $ftp_user, $ftp_password)) { 
    ftp_pasv($conn, true); 
    $uploaded = ftp_put($conn, $file_path, $_FILES['uploaded_file']['tmp_name'], FTP_ASCII); 
    ftp_close($conn); 
    if($uploaded){ 
     echo "success"; 
    } 
    else{ 
     echo "fail"; 
    } 
} else { 
    return "Couldn't connect as $ftp_user\n"; 
} 

Что я делаю неправильно? Спасибо за любую помощь.

+0

Что именно не работает? –

+0

Я получаю изображение. Но не в этом фактическом формате. изображение похоже на 950 кб. но каждый раз я могу видеть 60 кб. и он не поддерживается просмотром изображений Windows. –

+1

конвертировать в base64 или в двоичный файл – Deryck

ответ

2

Вы должны использовать FTP_BINARY для изображений, так как они являются двоичными. Вы должны отправлять текстовые файлы только как ASCII.

0

Я использую этот код для загрузки:

// set_time_limit(0); 
     $connection = ftp_connect("domain.com"); 
     $login = ftp_login($connection, "admin", "pass"); 
     if (!$connection) 
      { 
      die('Connection attempt failed!'); 
      } 
     else{ 
      echo "connection passed"; 
      } 
    if (!$login) 
      { 
      die('Login attempt failed!'); 
      } 
      else{ 
      echo "login passed"; 
      } 
    ftp_pasv($connection, true); 

<p> $source = "image.jpg"; 
    $dest = "folder/image.jpg";</p> 
<p> //$x = substr($dest,-4); 
    // echo $x;</p> 
<p> if((substr($dest,-4) == ".jpg") || (substr($dest,-4) == ".png")) 
{ 
//no problems; 
} 
else { 
die('only jpg or png.'); 
}</p> 
<p> $upload = ftp_put($connection, $dest, $source, FTP_BINARY); 
    if (!$upload) { echo 'FTP upload failed!'; } else {echo "ftp upload passed";}</p> 
<p> ftp_close($connection);</p> 
<p>?></p> 
Смежные вопросы