2011-01-23 2 views
3

У меня есть хостинг изображений, и у меня есть проблема.Загрузка изображений на удаленные серверы. PHP

У меня 3 сервера.

Первый - сайт/скрипт

Любые два сервера для изображений.

Как я могу загрузить изображение с «одного» сервера (скрипта) на второй и третий серверы?

<?php 
    if (isset($_POST['upload'])) 
    { 
     $blacklist = array('.php', '.phtml', '.php3', '.php4', '.php5'); 
     foreach ($blacklist as $item) 
     { 
      if(preg_match('#' . $item . '\$#i', $_FILES['file']['name'])) 
      { 
       echo "We do not allow uploading PHP files\n"; 
       exit; 
      } 
     } 

     $uploadDir = PROJECT_ROOT . 'upload/'; // 1ST SERVER (THIS SERVER) 
     $uploadFile = $uploadDir . basename($_FILES['file']['name']); 

     if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile)) 
     { 
      echo "File is valid, and was successfully uploaded.\n"; 
     } 
     else 
     { 
      echo "File uploading failed.\n"; 
     } 
    }  
?> 
<form name="upload" method="post" enctype="multipart/form-data"> 
    Select the file to upload: <input type="file" name="file"/> 
    <input type="submit" name="upload" value="upload"/> 
</form> 
+0

Что вы пытаетесь достичь здесь? Вы пытаетесь синхронизировать изображения на трех серверах или? –

+0

@middaparka, я хостинг изображений. Когда вы загружаете изображение, которое должно быть вылито на любой из 3-х серверов. 3 серверам необходимо выгрузить канал. Позже будет больше серверов. – Isis

+2

Я не уверен, что вы подразумеваете под «выгрузкой канала». Тем не менее, если вы попытаетесь воспроизвести изображение на всех трех серверах, у меня возникнет соблазн использовать что-то вроде [rsync] (http://en.wikipedia.org/wiki/Rsync). –

ответ

0

Если у вас уже есть HTTP-серверы подножка на других серверах, используйте cURL. Использование:

  1. Вызов curl_init
  2. Вызов curl_setopt
  3. Вызов curl_exec

Запрос HTTP можно настроить с помощью curl_setopt. Особенно интересны варианты CURLOPT_URL, CURLOPT_POST и CURLOPT_POSTFIELDS.

+0

То есть, вы должны предлагать на двух других серверах для размещения сценариев, а первый - использовать Curl для отправки изображений? – Isis

+0

@Isis Я предположил, что у вас это уже есть. Если вы этого не сделаете, перейдите на FTP как предлагаемый dqhendricks или какой-либо другой протокол, который уже предлагают другие серверы. – Oswald

0

Вы можете использовать Zend_Http Client для загрузки файлов на другие серверы на HTTP так же, как это сделает HTML Upload Form. Вы можете найти всю необходимую информацию здесь, в разделе «Загрузка файлов»: http://www.zendframework.com/manual/en/zend.http.client.advanced.html

Для начала работы Вы должны прочитать и так:

http://www.zendframework.com/manual/en/zend.http.client.html

В основном код нужно:

require_once('Zend/Http/Client.php'); 
$client = new Zend_Http_Client("http://serverurl/path"); 
$client->setFileUpload(...); 
$client->request(); 
Смежные вопросы