2011-01-23 40 views
3

私は画像ホスティングをしていますが、問題があります。イメージをリモートサーバーにアップロードします。 PHP

私は3台のサーバーを持っています。

ファーストサイト/スクリプト

イメージ用の2​​つのサーバー。

どのようにして「1つの」サーバー(スクリプト)から2番目と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

ここでは何を達成しようとしていますか? 3台のサーバー間で画像を同期しようとしていますか? –

+0

@middaparka、私は画像ホスティングをしています。 3つのサーバーのいずれかに注がれるイメージを読み込むとき。 3台のサーバーがチャネルをアンロードする必要があります。その後、より多くのサーバーが存在します。 – Isis

+2

「チャンネルをアンロードする」という意味がわかりません。つまり、3つのサーバーすべてに画像を複製しようとすると、[rsync](http://en.wikipedia.org/wiki/Rsync)のようなものを使用するように誘惑されます。 –

答えて

0

すでにcURLを使用し、他のサーバ上でruningてHTTPサーバを使用している場合。使用法:

  1. コールcurl_init
  2. コールcurl_setopt
  3. コールcurl_exec

HTTPリクエストがcurl_setoptを使用して設定することができます。特に興味深いのは、オプションCURLOPT_URL、CURLOPT_POST、およびCURLOPT_POSTFIELDSです。

+0

つまり、スクリプトをホストする2つの他のサーバー上で提供する必要があります。最初にCurlを使用してイメージを送信する必要がありますか? – Isis

+0

@Isis私はすでにそれを持っていると思っていました。そうでない場合は、dqhendricksが示唆しているFTPまたは他のサーバーがすでに提供している他のプロトコルに従ってください。 – Oswald

0

Zend_Http Clientを使用して、HTTPアップロードフォームと同じ方法でHTTPごとに他のサーバにファイルをアップロードできます。このあなたも読むべき入門用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(); 
関連する問題