gpt4 book ai didi

PHP:将文件从域 move 到子域

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:45:59 24 4
gpt4 key购买 nike

我在某个域上有一个站点,我们称它为“mydomain.com”,人们可以在其中登录。此域有一个子域 sub.mydomain.com

当用户在主域上载文件时,我想将其 move 到 sub.mydomain.com 上的 uploads 文件夹。我要将文件 move 到的文件夹具有完整的写入/读取权限。

我上传 te 文件的代码:

$filename = 'background_' . $_SESSION['username'] . '.jpg';
if (is_uploaded_file($_FILES['background']['tmp_name']))
{
move_uploaded_file($_FILES['background']['tmp_name'],
"/var/www/vhosts/mydomain.com/subdomains/sub/httpdocs/uploads/" . $filename);
}

运行此代码时出现以下警告/错误:

Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/var/www/vhosts/mydomain.com/subdomains/sub/httpdocs/uploads/background_User.jpg) is not within the allowed path(s): (/var/www/vhosts/mydomain.com/httpdocs:/tmp) in /var/www/vhosts/dezeactie.nl/httpdocs/opmaak.php  on line 152

谁能启发我解决我的问题?

最后一点:我知道我可以在子域上登录并直接将文件上传到那里,但是我想保留在主域上的登录用于其他目的。

提前致谢。

于尔根

最佳答案

您的托管服务不允许您的脚本在每个虚拟主机的 httpdocs 目录和共享的 /tmp 目录之外执行操作。这严重限制了站点之间信息交换的可能性。

我能想到的技巧:

  1. 在源站点的 /tmp 目录中存储一个临时文件,并在目标站点中触发一个进程来获取该文件。您可以使用 curl 函数来执行此操作。

  2. 将文件存储在公共(public)数据库中。如果您认为这会影响您的站点性能,则存储不需要是永久性的。目标站点只需要检查它是否有待处理的传入文件。

  3. 将文件添加到队列(可能是 httpdocs 中的特殊目录)并编写命令行脚本以将它们推送到目标站点。使用 cron 运行此命令(比方说,每分钟一次)。

恕我直言,#2 看起来可行且可靠。

关于PHP:将文件从域 move 到子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3140243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com