【问题标题】:PHP - Access file outside web serverPHP - 访问 Web 服务器外部的文件
【发布时间】:2013-06-24 20:14:39
【问题描述】:

我有 FTP 用户,我已将其设置为 chroot 到服务器根目录之外的文件夹中 - 例如。用户:myuser 主目录:/sftp/myuser/incoming。我希望能够从 PHP 脚本访问他们 FTP 的文件,但不知道路径?是否可以在“Web 服务器”之外访问 PHP 中的文件。我在网上看到很多东西说您可以但无法弄清楚路径。在下面的代码中,我试图访问已发送到服务器的 csv 文件,但我认为路径是相对于 Web 服务器而不是文件系统的——

<?
$myFile = file_get_contents('/sftp/myuser/incoming/test.csv');
echo $myFile;

【问题讨论】:

  • 如果您不知道路径,那么无论您使用什么文件,都无法引用该文件......他们的文件发送到网站的过程究竟如何?他们是通过网页上传的吗?他们是否通过 FTP 客户端将其上传到您的服务器?
  • 您可以访问文件系统中任何位置的文件,前提是 PHP 脚本在那里具有权限。对于所有文件系统访问,您需要相对于文件系统根目录工作,而不是 Web 服务器根目录。您必须确定 ftp 文件夹的正确路径以及您自己拥有的权限 - 我们只能猜测。如果您使用 HTML 表单上传文件,您可以在 PHP 中完全控制文件的去向。
  • 所以如果 root 拥有该文件夹,我将无法从脚本访问它?我在想我应该将他们的 ftp 目录更改为站点根目录内的内容吗?例如,如果我链接到 .jpg 文件并使用有效的 /img/my.jpg 的绝对路径,我不必输入 /etc/var/www...等

标签: php filesystems


【解决方案1】:

我相信您需要为此使用 FTP 类。 http://php.net/manual/en/book.ftp.php

如果您知道路径,也许可以使用 ftp_get 来获取文件。 或者递归获取用户文件夹中的所有文件。

【讨论】:

  • 文件已经在服务器上。客户端如果通过 FTP 将文件发送给我,然后我正在尝试读取它。
猜你喜欢
  • 1970-01-01
  • 2012-10-04
  • 1970-01-01
  • 2020-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-22
  • 1970-01-01
相关资源
最近更新 更多