【问题标题】:move_uploaded_file and relative path to destination in public_html in home directory?move_uploaded_file 和主目录中 public_html 中目标的相对路径?
【发布时间】:2012-09-23 10:11:24
【问题描述】:

我现在使用的是 OpenSuse 12.2。为了学习和测试 PHP 代码,我使用 home 文件夹中的 public_html 目录:/home/wojtek/public_html/ 我通过以下方式访问项目文件:

http://localhost/~wojtek/projects/foo/bar.php

但我不知道如何让 move_uploaded_file 工作。服务器根目录是 /srv/www。我将 upload_tmp_dir 设置为 /srv/www/tmp (我真的不知道它应该去哪里)。

当我将 move_upladed_file 的目标设置为 /srv/www/images 时,文件会降落在那里。但我想使用 public_html 文件夹,因为我将所有文件都保存在那里。

例如: public_html/projects/foo/ public_html/projects/foo/bar.php public_html/projects/foo/images/baz.jpg

我可以在 bar.php 中以某种方式使用 move_uploaded_file 的相对目标('images/')吗?这样我就可以像 bar.php 那样在 IMG 标签中相对访问图像?

对不起,如果这听起来有点混乱,但我是 PHP 新手。

【问题讨论】:

    标签: php file-upload


    【解决方案1】:

    不,您将无法从/home/wojtek/public_html/projects/foo/bar.php 网页访问/srv/www/images 文件夹。

    我建议要么

    1) 将move_uploaded_file 设置为/home/wojtek/public_html/projects/foo/images

    2) 使用符号链接从您的 public_html 文件夹访问图像文件夹:

    cd /home/wojtek/public_html/projects/foo
    ln -s /srv/www/images/
    

    然后看起来图像存储在/home/wojtek/public_html/projects/foo/images,但实际上它们仍然在这里/srv/www/images

    但是,使用此方法您可能会遇到权限问题

    【讨论】:

    • 谢谢。由于服务器根目录是 /srv/www,我认为 /home/wojtek 超出了它的范围。另一方面,服务器知道我的主目录中的 public_html,因为我按照以下 localhost/~wojtek/projects/foo/bar.php 访问它。例如是否可以这样做: PATH_TO_THE_CURRENT_SCRIPT 。 'images/' 还是类似的?
    • 是的,你可以这样做。 $_SERVER["DOCUMENT_ROOT"] 将解析为 apache 为站点定义的目录 - 在您的情况下为 /home/wojtek/public_html/
    • 如果您需要,请提供所有信息:php.net/manual/en/reserved.variables.server.php
    • 你好!很抱歉,因为我很忙,三天没有回复。 $_SERVER['DOCUMENT_ROOT'] 返回的不是 /home/wojtek/public_html/ 而是 /srv/www/htdocs。另一方面,以下地址下的文件:localhost/~wojtek/headfirst/ch05/guitarwars/index.php 当我发出 echo $_SERVER['PHP_SELF'];返回 /~wojtek/headfirst/ch05/guitarwars/index.php。是什么赋予了? :)
    • 所以你说我不能将一个 tmp 文件从 /srv/www 移动到我的 public_html?也许我可以覆盖全局设置?有点本地临时目录,本地服务器根目录?
    猜你喜欢
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    相关资源
    最近更新 更多