【问题标题】:Opening/Reading a local file from PHP Web Application从 PHP Web 应用程序打开/读取本地文件
【发布时间】:2021-01-27 21:04:06
【问题描述】:

我觉得这应该是一个非常简单的过程。

我有以下代码:

<?php
    $filename = "c:/TestFolder/config.txt";
    echo "Attempting to read: ".$filename."<br/>";
    $fh = fopen($filename, 'r') or die("file doesnt exist");
    $readtext = fread($fh, filesize($filename));
    fclose($fh);
    echo "The Text is: ".$readtext;
?>

我已检查我的 C:/ 驱动器上名为“TestFolder”的文件夹中确实有“config.txt”...但我不断收到文件不存在的错误消息。

我检查了我的 PHPInfo 以确保“allow_url_fopen”已打开。

我也尝试过不同的文件路径变体,例如:

C:\\TestFolder\\config.txt

C:\/TestFolder\/config.txt

这似乎没有什么不同。

知道是什么阻止我打开这个文件吗?

编辑: 应该注意的是,当我尝试访问本地计算机上的文件时,此文件已上传到我的网络主机。不确定这是否会改变一切。

【问题讨论】:

  • 检查open_basedir 选项。
  • 看起来我的 open_basedir 目前没有值。应该是?如果是这样 - 它应该是什么?
  • 另外 - 如果您错过了编辑 - 我已将此文件上传到我的网络主机,同时尝试在我的本地计算机上打开文件。不确定这是否会有所不同。
  • “本地机器”是运行 PHP 的机器。那是网络主机。
  • 确保它有所作为。如果您上传了一些文件并使用php 处理它,您需要先将move_uploaded_file(...) 到某个位置然后打开它。

标签: php fopen


【解决方案1】:

这是不可能的。 “本地文件”是运行 PHP 的服务器上的文件,而不是运行 Web 浏览器的客户端上的文件。虽然在本地测试时它们可能是同一台机器,但一旦将脚本上传到 Web 主机,PHP 会尝试读取 Web 主机上的文件,而不是您的机器。

PHP 访问客户端计算机上文件的唯一方法是让应用程序上传它。

【讨论】:

    猜你喜欢
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 2022-01-07
    • 2014-07-11
    • 1970-01-01
    相关资源
    最近更新 更多