Загрузить изображения на удаленные серверы. PHP - PullRequest
3 голосов
/ 23 января 2011

Я делаю хостинг изображений и у меня проблема ..

У меня 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>

Ответы [ 3 ]

4 голосов
/ 23 января 2011

Вы можете использовать ftp.У PHP довольно простой способ сделать это.Проверьте эту ссылку.

http://www.php.net/manual/en/book.ftp.php

0 голосов
/ 24 января 2011

Вы можете использовать Zend_Http Client для загрузки файлов на другие серверы по HTTP так же, как это делает HTML-форма для загрузки. Вы можете найти всю необходимую информацию здесь, в разделе «Загрузка файлов»: 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();
0 голосов
/ 23 января 2011

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

  1. Call curl_init
  2. Call curl_setopt
  3. Call curl_exec

HTTP-запрос можно настроить с помощью curl_setopt .Особый интерес представляют варианты CURLOPT_URL, CURLOPT_POST и CURLOPT_POSTFIELDS.

...