10

有人可以帮忙吗?我是网络开发新手,不确定这个错误是什么意思?

警告:fopen(images/nophoto.png):无法打开流:第 101 行的 /home/u835626360/public_html/remove.html 中没有此类文件或目录

这个文件/图片不能打开吗?你需要关闭吗

代码:

$expire=time()-3600;
setcookie("dname","a", $expire);
setcookie("dpode","a", $expire);
}
function delpics($filename)
{
$path_to_file='userpics/';
$old = getcwd(); // Save the current directory
    chdir($path_to_file);
    $fh = fopen($filename, 'w') or die("can't this file/picture is open you need close ");
    fclose($fh);
    if (!unlink($filename))
  {
  echo ("Error deleting $file");
  }
else
  {
  echo ("Deleted  $filename");
  }
    chdir($old); // Restore the old working directory   
}
4

4 回答 4

10

您需要提供fopen文件的完整路径,而您根本不需要chdir()。试试这个版本:

$path_to_file='userpics/';
$fh = fopen($path_to_file.$filename, 'w') or die('Permission error');
于 2013-06-05T08:25:20.203 回答
2

我面临同样的问题。我在想如果我使用 w 或 w+ 会创建文件,但给我上面的错误。

所以问题是我们需要在创建文件之前创建目录。

我们可以得到文件的绝对DIR路径

$dir = dirname($filename);

创建目录

//if(!is_dir($dir))
mkdir( $dir , 0755, true);

第三个参数很重要,你想要递归

我知道这听起来很愚蠢,但它可能会节省某人的时间,所以在这里添加

于 2016-02-12T14:35:19.147 回答
1

首先在您的服务器(如果有)或本地电脑(如果您在本地开发)中手动创建目录

确保在您的目录中为 apache 正确写入(如果您不确定是否可以做您不想做的事情,并且不知道 windows 的情况,则为 unix-linux 中的 0777)

然后就像据说给fopen的好路径而不仅仅是文件名

于 2013-06-05T08:28:52.220 回答
0

尝试这个:

    $expire=time()-3600;
    setcookie("dname","a", $expire);
    setcookie("dpode","a", $expire);

    function delpics($filename)
    {
    $path_to_file='/userpics/';
    $old = getcwd(); // Save the current directory
        chdir($old.$path_to_file);
        $fh = fopen($filename, 'w') or die("can't this file/picture is open you need close ");
        fclose($fh);
        if (!unlink($filename))
      {
      echo ("Error deleting $file");
      }
    else
      {
      echo ("Deleted  $filename");
      }
        chdir($old); // Restore the old working directory   
     }
于 2013-06-05T09:45:23.557 回答