Php 无法打开流:没有这样的文件或目录

Php 无法打开流:没有这样的文件或目录,php,Php,有人能帮我做这个吗?我是一个网络开发新手,不知道这个错误意味着什么 警告:fopen(images/nophoto.png):无法打开流:无此类 第行/home/u835626360/public_html/remove.html中的文件或目录 101 无法打开此文件/图片您需要关闭 代码: 您需要为fopen提供文件的完整路径,而根本不需要chdir()。请尝试以下版本: $path_to_file='userpics/'; $fh = fopen($path_to_file.$filenam

有人能帮我做这个吗?我是一个网络开发新手,不知道这个错误意味着什么

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

无法打开此文件/图片您需要关闭

代码:


您需要为
fopen
提供文件的完整路径,而根本不需要
chdir()
。请尝试以下版本:

$path_to_file='userpics/';
$fh = fopen($path_to_file.$filename, 'w') or die('Permission error');

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

确保您的目录中有apache的写权限(如果您不想确保您可以做您不想做的事情,并且对windows一无所知,则在unix linux中为0777)

然后就像上面说的那样,给fopen提供一个好的路径,而不仅仅是文件名

    $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   
     }

我也面临同样的问题。我在想,若我使用w或w+将创建该文件,但给出了上述错误

所以问题是我们需要先创建dir,然后才能创建文件

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

$dir = dirname($filename);
创建目录

//if(!is_dir($dir))
mkdir( $dir , 0755, true);
第三个参数非常重要,您需要递归地使用它


我知道这听起来很愚蠢,但它可能会节省一些人的时间,所以添加到这里,它说,文件找不到你至少可以发布图像文件的完整路径吗?对不起,这意味着什么?请注意绝对文件名(例如,
/tmp/bla
)仍然被视为相对于
DocumentRoot
(至少在某些环境中)。请不要推荐
777
作为任何问题的权限,尤其是与web有关的问题-这是一扇打开的漏洞利用之门。我要说的是,如果他不想确保它仅适用于开发人员,而不适用于prod,那么您需要确定是什么阻止了您,因为某些php配置不允许访问服务器目录或某些路径可能是错误的,有了777,你肯定不是操作系统阻止了你,你可以搜索另一个问题,然后你可以在工作时换成644,我不是说他需要一直保留777:PHi,我该把这个放在哪里?我将替换什么?删除
$old=getcwd()
chdir($path\u to\u文件),并用答案替换现有的
$fh=
行。谢谢,我仍然收到错误。页面现在看起来是这样的:$expire=time()-3600;setcookie(“dname”、“a”、“过期美元”);setcookie(“dpode”、“a”、$expire);}函数delpics($filename){$path_to_file='userpics/';$fh=fopen($path_to_file.$filename,'w')或die($Permission error');fclose($fh);if(!unlink($filename)){echo($error deleting”);}else{echo($Deleted$filename)}chdir($old);//在使用
$filename
的任何地方恢复旧的工作目录,将其替换为
$path\u to\u文件。$filename
并删除
chdir($old)
。确保
$path\u to\u文件
是完整路径,类似于
/home/user/public\u html/userpics/
//if(!is_dir($dir))
mkdir( $dir , 0755, true);