【问题标题】:php fopen can't find file that definitely existsphp fopen 找不到绝对存在的文件
【发布时间】:2011-07-20 03:03:34
【问题描述】:

我正在尝试将数据从我的 Windows PC 上的 CSV 加载到数据库中,这是我之前成功完成的。 fopen 找不到我的输入文件。

这是我遇到问题的具体代码:

<?php

ini_set('track_errors', '1');

$handle = fopen("C:/Users/Sam/Documents/test.csv", 'r') or die("can't open file: $php_errormsg");

?>

打印的错误是:

[function.fopen]:打开流失败:没有这样的文件或目录

该文件确实存在,我在 Unix 机器上遇到了同样的问题。我该如何解决这个问题?

【问题讨论】:

  • 文件权限设置了吗?
  • 您的代码本身没有任何问题,因此它一定是与您的系统相关的问题。运行 PHP 和/或您的网络服务器的用户是否有权访问该文件?
  • 你试过使用反斜杠吗?
  • 马克——不完全确定如何回答你的问题。在这种情况下,我相信我是运行 php 的用户,并且我确实可以访问该文件。山姆,我尝试过使用反斜杠和双(转义)反斜杠,但是没有用。

标签: php fopen


【解决方案1】:

Windows 7(和 Vista?)只允许用户访问他自己的主目录,不允许 Apache(或其他用户)访问。不幸的是,这是一个令人头疼的问题,我建议您将文件移到公共的地方。

这种行为在 Linux 中更容易修复,但最好将文件从目录移出到 Apache 具有读取权限的某个路径。

【讨论】:

  • 感谢大家的意见,很遗憾,我仍然无法解决问题!我已将文件移动到基​​本目录 C 并确保所有用户都允许权限,但我仍然收到“没有这样的文件”消息,甚至没有“权限被拒绝”消息。非常令人沮丧。
  • 把它和文件放在同一个目录会发生什么?
  • cwallenpoole- 做到了。要么你是天才,要么我真的很笨。我假设路径是相对于我的 PC,而不是 php 脚本所在的位置。
  • 好吧,我不是想吹牛 ;-)... 在过去的三四天里,我一直在处理主要的 Win7 权限问题。这似乎是自然原因。只是好奇,您使用的是哪个版本的 AMP(XAMPP、WAMP 等)?
  • 其实我也说不上来。这只是我第二次使用服务器,但它由我的大学托管,他们说它是 Apache Web 服务器。不幸的是,我真的不知道比这更多的细节。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2010-12-29
  • 2021-09-26
  • 2015-01-18
  • 1970-01-01
  • 2015-12-15
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
相关资源
最近更新 更多