• 解决Warning: unlink(/storage/cache/cache.catalog.language.1556158719): No such file or directory in /system/library/cache/file.php on line 68问题


    ytkah在调试opencart项目时提示Warning: unlink(/storage/cache/cache.catalog.language.1556158719): No such file or directory in /system/library/cache/file.php on line 68,出现这个问题首先确认是否权限不够,如果权限不够,可以把对应的文件夹设为777。以下是详细的解决方案

    1.设置权限,/system/storage/和/image/设为755或777

    chmod 0755 or 0777 system/storage/cache/
    chmod 0755 or 0777 system/storage/download/
    chmod 0755 or 0777 system/storage/logs/
    chmod 0755 or 0777 system/storage/modification/
    chmod 0755 or 0777 system/storage/session/
    chmod 0755 or 0777 system/storage/upload/
    chmod 0755 or 0777 system/storage/vendor/
    chmod 0755 or 0777 image/
    chmod 0755 or 0777 image/cache/
    chmod 0755 or 0777 image/catalog/
    

      

    2.清理缓存:extensions - modification - refresh
    dashboard - cache右上角 - refresh
    浏览器清理缓存:ctrl + f5强制刷新
    3.如果还是出现那个提示,可以试试更新/system/library/cache/file.php文件

    <?php
    namespace Cache;
    class File {
        private $expire;
    
        public function __construct($expire = 3600) {
            $this->expire = $expire;
    
            $files = glob(DIR_CACHE . 'cache.*');
    
            if ($files) {
                foreach ($files as $file) {
                    $filename = basename($file);
    
                    $time = substr(strrchr($file, '.'), 1);
    
                    if ($time < time()) {
                        $this->delete(substr($filename, 6, strrpos($filename, '.') - 6));
                    }
                }
            }
        }
    
        public function get($key) {
            $files = glob(DIR_CACHE . 'cache.' . basename($key) . '.*');
    
            if ($files) {
                $handle = fopen($files[0], 'r');
    
                flock($handle, LOCK_SH);
    
                $size = filesize($files[0]);
    
                if ($size > 0) {
                    $data = fread($handle, $size);
                } else {
                    $data = '';
                }
    
                flock($handle, LOCK_UN);
    
                fclose($handle);
    
                return json_decode($data, true);
            }
    
            return false;
        }
    
        public function set($key, $value) {
            $this->delete($key);
    
            $file = DIR_CACHE . 'cache.' . basename($key) . '.' . (time() + $this->expire);
    
            $handle = fopen($file, 'w');
    
            flock($handle, LOCK_EX);
    
            fwrite($handle, json_encode($value));
    
            fflush($handle);
    
            flock($handle, LOCK_UN);
    
            fclose($handle);
        }
    
        public function delete($key) {
            $files = glob(DIR_CACHE . 'cache.' . basename($key) . '.*');
    
            if ($files) {
                foreach ($files as $file) {
                    if (!@unlink($file)) {
                        clearstatcache(false, $file);
                    }
                }
            }
        }
    }
    

      具体文件以官方为准https://github.com/opencart/opencart/edit/master/upload/system/library/cache/file.php

  • 相关阅读:
    mysql 语句case when
    Hibernate应用SQL查询返回实体类型
    JavaBean 和 Map 之间互相转换
    基于注解风格的Spring-MVC的拦截器
    Spring MVC与表单日期提交的问题
    自适应网页设计(Responsive Web Design)
    JSP页面用EL表达式 输出date格式
    EL表达式中如何截取字符串
    DOCTYPE html PUBLIC 指定了 HTML 文档遵循的文档类型定义
    javascript对table的添加,删除行的操作
  • 原文地址:https://www.cnblogs.com/ytkah/p/10766517.html
Copyright © 2020-2023  润新知