zoukankan      html  css  js  c++  java
  • Thinkphp5 使用unlink删除文件出错Permission denied

    今天做图片上传时遇到问题,上传失败则需要删除新上传的图片,结果删除的时候报错

    unlink('此处为文件路径'): Permission denied

    查了一下网上有人说是文件夹权限问题,最后解决,不是文件夹权限问题

    这里删除失败是因为文件还没有被释放,并非权限不足

    上传成功之后使用 unser($info) 释放文件,释放文件之后就能正常删除啦!

    $file = Request()->file('img');
            if (!empty($file))
            {
                $info = $file->move(config('文件保存路径') . $aaa. DS . $bbb);
                if($info){
                    // 成功上传后 获取上传信息
                    $img = str_replace('\', '/',config('文件保存路径') . $aaa . DS . $bbb . DS . $info->getSaveName());
                    //上传成功之后释放文件
                    unset($info);
                    //查出并删除旧文件并
                    $worn_img = db('表名称')->where('id',$id)->value('img');
                    //旧文件截取为可删除状态
                    $worn_img = str_replace('\', '/', config('文件保存路径') . $aaa . DS . $bbb . DS . substr($worn_img,-10));
                    try
                    {
                        unlink($worn_img);
                    } catch (Exception $e)
                    {
                        //图片删除失败,删除新上传的图片
                        $delete_img = str_replace('\', '/', config('文件保存路径') . $aaa . DS . $bbb . DS . substr($img,-10));
                        unlink($delete_img);
                        return '图片删除失败!';
                    }
                }else
                {
                    // 上传失败获取错误信息
                    recordErrorLog($file->getError());
                    return '上传失败!';
                }
            }
  • 相关阅读:
    js格式化时间和时间操作
    java链接FTP实现上传和下载
    JQuery 对 Select option 的操作
    利用set实现去重
    数组去重的五个办法
    JavaScript实现360度全景图片展示效果
    对于行高(line-height)的一些理解
    Flex 布局教程:语法篇
    学习Javascript闭包
    MySQL explain字段解释
  • 原文地址:https://www.cnblogs.com/blibli/p/12356310.html
Copyright © 2011-2022 走看看