Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php将图像上载到其他域_Php_Image_Cross Domain_Image Uploading - Fatal编程技术网

使用php将图像上载到其他域

使用php将图像上载到其他域,php,image,cross-domain,image-uploading,Php,Image,Cross Domain,Image Uploading,我正在开发一个应用程序,它允许用户创建自己的HTML模板并发布到互联网上。用户可以上传和使用图像 问题陈述: 用户在发布模板之前必须创建一个域。我使用cpanel函数来创建域。但是,我还想将他的图像上载到他创建的域中,并在用户回来编辑模板时使用相同的图像(即它们的位置)。我不希望两个域上都有单独的副本!用户在www.xyz.com上编辑其网站,并在ABC.xyz.com上创建和发布(可以是子域或主域)。因此,我希望图像上传到ABC.xyz.com,并在编辑域上反映相同的路径,这样就避免了存储多个

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

问题陈述:
用户在发布模板之前必须创建一个。我使用cpanel函数来创建域。但是,我还想将他的图像上载到他创建的域中,并在用户回来编辑模板时使用相同的图像(即它们的位置)。我不希望两个域上都有单独的副本!用户在www.xyz.com上编辑其网站,并在ABC.xyz.com上创建和发布(可以是子域或主域)。因此,我希望图像上传到ABC.xyz.com,并在编辑域上反映相同的路径,这样就避免了存储多个图像的开销。这会涉及跨域脚本吗?(我相信是的!)
我无法开始,因为不完全了解如何实现这一点!我想知道我可以如何继续?任何帮助都将有助于我朝着正确的方向开始。
注意:如果我开始,将更新代码。

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

您只需将它们上传到您的服务器,然后从那里复制(如果它在同一台服务器上)或ftp/scp/无论您如何上传它们


棘手的部分可能是允许用户在其网站上进行更改。但我相信你在做同样的事。。。因此,只需简单地使用apachemod_别名就可以正确使用它

我不确定您的设置是什么,但我会为子域使用虚拟主机,并将它们指向驻留在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;
}

感谢您的投入。定点机制是我们目前使用的机制,我们希望取消它,因为一些用户希望它托管在他们自己的域上(这是完全不同的),然后我们再次运行命令并执行定点部分。因此,我们希望将其自动化,然后,我为您提供了几个选项:让他们设置一个图像上载脚本,您可以将表单数据发布到该脚本。或者让用户将文件上传到您的服务器,立即将其ftp或scp上传到客户端服务器并更新该图像的地址。用户没有权限编写任何脚本。您的意思是我在用户域(比如ABC.xyz.com)上有一个php文件或上传脚本,并发送上传请求(从我的域(即www.xyz.com)调用那里的函数)该域上的图像?如果我没记错,你能帮我怎么开始吗?我不久前写的一个FTP上传功能更新了答案。这应该会给你一个好的开始,告诉你如何将文件发送到其他服务器。谢谢。一些疑问:-所以该文件将驻留在我的域本身??我在用户域上不需要它?是secu吗够了吗?还有,当我想把它们放在编辑域上时,
imgsrc=”http://ABC.xyz.com"
在我的域上工作?由于用户可能选择自己的域服务器,服务器有时可能会有所不同。现在,如果我可以通过代码动态执行FTP,我不确定!此外,当用户首次发布我的html文件时,我必须将其从本地域移动到用户,但这应该是可行的。我相信图像似乎是我想要上传的问题如果要在两个域都访问一个副本,这会带来任何安全问题??通过代码进行ftp是否足够安全。此外,用户将从发布切换回编辑!作为参考,这有点类似,为了ftp用户服务器的文件,您将需要他的密码。因此,是的,这会给使用ftp的用户带来安全风险你的服务。如果你看一看我所选的链接,它已经实现了类似的功能。你能告诉我如何处理它吗,因为我正在类似的领域工作。这将是非常有帮助的。谢谢你谢谢你,但我正在看图片必须如何处理。谢谢你的帮助。我会处理你的建议打手势,试着让它工作!