使用php将图像上传到不同的域



我正在开发一个应用程序,该应用程序允许用户创建自己的HTML模板并将其发布到互联网上。用户可以为此目的上传和使用图像。

问题说明:
用户必须先创建,然后才能发布模板。我使用cpanel函数来创建域。但是,我也想将他的图像上传到他创建的域,并在用户回来编辑模板时使用相同的图像(即它们的位置)。我不想在两个域上分别复制!用户在www.xyz.com上编辑他的网站,并在ABC.xyz.com创建和发布它(可以是子域或主域)。因此,我希望图像上传到ABC.xyx.com,并在编辑域上反映相同的路径,这样就避免了存储多个图像的开销。这会涉及跨域脚本编写吗?(我相信是的!)
我无法开始,因为我不完全了解如何才能做到这一点!我想知道我该怎么做?任何帮助都有利于我朝着正确的方向开始。注意:如果我开始,将更新代码。

不,它不需要跨域脚本。您不需要将文件直接从浏览器上传到另一个域。

你可以把它们上传到你的服务器上,然后从那里复制(如果它在同一台服务器上)或ftp/scp/你所做的任何事情来上传它们。

棘手的部分可能是允许用户在自己的网站上进行更改。但我相信你们是在做同样的服务器。。。因此,只需简单使用apachemodalias就可以做到这一点。

我不确定你的设置是什么,但我会为子域使用虚拟主机,并将它们指向xyz.com域内的文件夹。

例如,一个用户在xyz.com上编辑他的网站,xyz.com将这些图像存储到xyz.com/ABC/images中。然后,子域ABC.xyz.com实际上指向xyz.com/ABC文件夹作为其根www目录。

无论出于何种原因,如果域托管在两台独立的计算机上,您可以在cron作业上使用ftp或cp脚本,以保持其他系统上的文件镜像到xyz.com域上的文件。

以下是ftp将本地文件上传到外部服务器的示例:

public function ExecFTPUpload($local_file, $uploadfilename){
    $handle = fopen($local_file, 'r');
    $success = true;
    $conn_id = ftp_connect($this->config->ftpserver);
    // check connection 
    if ($conn_id && ($login_result = ftp_login($conn_id, $this->config->ftp_user_name, $this->config->ftp_user_pass))) {
         ftp_pasv($conn_id, true); 
        // try to upload $local_file and save it to $handle
        if(!ftp_fput($conn_id, $uploadfilename, $handle, FTP_ASCII)) $success = false;
        ftp_close($conn_id);  
    }else $success = false;
    return $success;
}

相关内容

  • 没有找到相关文章

最新更新