【问题标题】:How can I upload a file outside public_html?如何在 public_html 之外上传文件?
【发布时间】:2012-10-27 00:13:19
【问题描述】:

我有一个这样的文件夹结构:

etc
files
public_html
tmp

我希望我网站的用户能够上传文件,并将这些文件存储在 files 文件夹中(而不是将它们存储在 public_html 中的某个文件夹中)。这是出于安全原因。我有点新手,我无法弄清楚如何将上传的文件存储到files 文件夹。这是我的代码(相关部分?):

$path = dirname( __FILE__ ) ."/" . 'files/my_file.pdf';
$success = move_uploaded_file( $tmp_name, $path );

我应该如何更改 $path 才能使其正常工作?

【问题讨论】:

  • 如果要向后导航,可以使用两个点..
  • 取决于 FRAMEWORK_PATH 是什么,通常你只需添加两个点来表示“一个文件夹返回”
  • 所以我会写../files/my_file.pdf?

标签: php public-html


【解决方案1】:

知道FRAMEWORK_PATH 的值是什么,很难说你的文件上传到了哪里。如果您特别想将文件放在您选择的位置,只需明确指定它:

$path = '/path/to/files/';
$filename = 'name_you_want_to_give_upload';

$success = move_uploaded_file($tmp_name, $path . $filename);

【讨论】:

  • OP 还应确保他/她希望上传到的目录可由其 Web 服务器写入。
【解决方案2】:

如果您想将文件保存在 upload.php 文件所在的位置之外,则需要在要保存它的文件路径的 beaning 处添加 ../,例如:

如果您的 upload.php 文件位于此根目录中:

public_html/files/php/upload.php

但是,您想将上传的文件保存在名为 upFiles 的文件夹中,并且它位于 php 文件夹之外 (就是这种情况),您可以编写这样的路径:

../upFiles/

如果您也想将其保存在子文件夹中,可以使用此方法:

../files/anotherFolder/upFiles

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 2012-07-25
    • 2011-10-08
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    相关资源
    最近更新 更多