【问题标题】:Problem with unlink() in php!php 中 unlink() 的问题!
【发布时间】:2010-04-16 06:15:56
【问题描述】:

我在特定文件夹下创建一个始终命名为 1.png 的临时图像,一旦我读取了 image_contents 并处理,我使用 unlink() 从该文件夹中删除该特定图像。

但有时图像文件没有被删除,而同一个图像文件被读取和处理。

该脚本运行正常...

没有权限相关的问题,因为文件有时会被删除......

脚本被反复调用,同名的图片已经存在且没有被删除等等,会不会有什么问题????

请告诉我会是什么问题

      extension_loaded('ffmpeg');
      $max_width  = 120;
      $max_height = 72;
        $path ="/home/fff99/public_html/temp/";
            .....
            .....
        $nname = "/home/friend99/public_html/temp/".$imgname;
        $fileo = fopen($nname,"rb");
        if($fileo)
        {
            $imgData = addslashes(file_get_contents($nname));
                    ....
                    ...
                    ..
        }
        unlink('$nname');

【问题讨论】:

    标签: php file


    【解决方案1】:

    您应该检查来自 unlink 的返回值,看看它是否返回 false。最有可能的问题是一个打开的文件句柄阻止取消链接完成;你的 fopen 应该有一个对应的 fclose:

    fclose($fileo);
    if(!unlink($nname))
        echo "AAAAH!";
    

    【讨论】:

    • 没关系。我应该注意添加 fclose() 。我有一个疑问。用户在我的网站上进行的每次上传都会调用我的脚本。那么创建一个总是名为 '1.png' 的文件会很麻烦,如果是这样,那么如何处理这个..
    【解决方案2】:

    我在使用 @unlink 时遇到了类似的问题,它会选择何时删除,所以我切换到这个;

    if (file_exists($filename)) {
    unlink($filename);
    }
    

    出于某种对我有用的原因,希望它有所帮助。

    【讨论】:

    • 这似乎不会帮助取消链接留下文件,它只是防止尝试取消链接不存在的文件
    • 好吧,我正要回答“但是没有关闭链接就取消链接会导致权限错误”,他说他没有得到,然后我看到了;取消链接('$nname');这不应该用单引号引起来。然后他会有一个错误,现在一切都说得通了。
    猜你喜欢
    • 2015-07-11
    • 2013-02-25
    • 1970-01-01
    • 2015-07-15
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    相关资源
    最近更新 更多