将图像上传到远程服务器。 PHP

时间:2011-01-23 17:55:35

标签: php image upload

我做图片托管,我遇到了问题..

我有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 个答案:

答案 0 :(得分:4)

你可以使用ftp。 PHP有相当简单的方法来做到这一点。点击此链接。

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

答案 1 :(得分:0)

如果您已在其他服务器上运行HTTP服务器,请使用cURL。用法:

  1. 致电curl_init
  2. 致电curl_setopt
  3. 致电curl_exec
  4. 可以使用curl_setopt配置HTTP请求。特别感兴趣的是选项CURLOPT_URL,CURLOPT_POST和CURLOPT_POSTFIELDS。

答案 2 :(得分:0)

您可以使用Zend_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();