vue-cookie 设置过期时间之关闭浏览器清除 cookie 2557

vue-cookie 设置过期时间及关闭浏览器清除 cookie

后台基本开发规范 2632

后台基本开发规范

vue 使用 uuid 报错:uuid has no default export 3161

vue 在使用 uuid 的时候报这个错误如何解决:uuid has no default export

vue 包含别名的图片地址如何动态加载 2909

vue 包含别名的图片地址如何动态加载。如:imgurl = "@img/1.png"

vue 获取非200状态码返回的 response 数据 1681

如何获取非200状态码返回的 response 数据

jenkins 搭建 vue 自动发布平台 1705

如何用 jenkins 搭建一个 vue 项目的自动发布平台

腾讯云 cdn 的使用及添加 cname 报错:解析记录已存在 3000

首次开通腾讯云送了120G的 cdn 流量,虽然本博客没多少人看,但是本着不浪费的精神,还是去配置了下 cdn

华为云对象存储 obs 文件流上传 4110

laravel 支持华为云对象存储 obs 文件流上传

华为云对象存储 obs 基于表单上传文件 4982

记录华为云对象存储 obs 基于表单上传文件

php 华为云对象存储安装( obs 安装) 5446

在 laravel 下安装 obs 依赖包,安装华为云对象存储依赖包

小提示

如有侵权请邮件通知

ftfoolish - 求知若饥,虚心若愚
vue-cookie 设置过期时间之关闭浏览器清除 cookie 2618

vue-cookie 设置过期时间及关闭浏览器清除 cookie

后台基本开发规范 2688

后台基本开发规范

vue 使用 uuid 报错:uuid has no default export 3225

vue 在使用 uuid 的时候报这个错误如何解决:uuid has no default export

vue 包含别名的图片地址如何动态加载 2970

vue 包含别名的图片地址如何动态加载。如:imgurl = "@img/1.png"

vue 获取非200状态码返回的 response 数据 1713

如何获取非200状态码返回的 response 数据

jenkins 搭建 vue 自动发布平台 1723

如何用 jenkins 搭建一个 vue 项目的自动发布平台

腾讯云 cdn 的使用及添加 cname 报错:解析记录已存在 3022

首次开通腾讯云送了120G的 cdn 流量,虽然本博客没多少人看,但是本着不浪费的精神,还是去配置了下 cdn

华为云对象存储 obs 文件流上传 4130

laravel 支持华为云对象存储 obs 文件流上传

华为云对象存储 obs 基于表单上传文件 5009

记录华为云对象存储 obs 基于表单上传文件

php 华为云对象存储安装( obs 安装) 5466

在 laravel 下安装 obs 依赖包,安装华为云对象存储依赖包

小提示

如有侵权请邮件通知

php 解压 zip 压缩包 - ftfoolish

php 解压 zip 压缩包

  • php 解压 zip 压缩包有多种方法,这里主要记录一下,zipper 如何解压 zip 文件及 zipper 如何解决解压中文乱码的问题。
  1. 引入 zipper 扩展
    composer require chumper/zipper
  2. 如何使用?
    use Chumper\Zipper\Zipper;
    $zip = new Zipper();
    // localFile 上传的 zip 压缩包地址 localPath 需要解压到的指定目录
    $zip->make($localFile)->extractTo($localPath);
  3. 如果包含中文名称的文件,乱码怎么办?
  • // 将vendor/chumper/zipper/src/Chumper/Zipper/Repositories/ZipRepository.php种的each方法修改为以下:
    public function each($callback)
    {
          for ($i = 0; $i < $this->archive->numFiles; ++$i) {
              //skip if folder
              $stats = $this->archive->statIndex($i);
    
              if ($stats['size'] === 0 && $stats['crc'] === 0) {
                  continue;
              }
              // 这里做了修改
              $rawName = $this->archive->getNameIndex($i, ZipArchive::FL_ENC_RAW);
              $encode = mb_detect_encoding($rawName, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));
              $rawName = iconv($encode, 'UTF-8', $rawName);
    
              call_user_func_array($callback, [
                  $stats['name'], $rawName
              ]);
          }
    }
  • // 将vendor/chumper/zipper/src/Chumper/Zipper/Zipper.php中extractFilesInternal方法修改为以下:
    private function extractFilesInternal($path, callable $matchingMethod)
    {
          $self = $this;
          // 添加一个中文名参数
          $this->repository->each(function ($fileName, $CNName) use ($path, $matchingMethod, $self) {
              $currentPath = $self->getCurrentFolderWithTrailingSlash();
              if (!empty($currentPath) && !starts_with($fileName, $currentPath)) {
                  return;
              }
    
              $filename = str_replace($self->getInternalPath(), '', $fileName);
              if ($matchingMethod($filename)) {
                  $self->extractOneFileInternal($fileName, $CNName, $path);
              }
          });
    }
  • // vendor/chumper/zipper/src/Chumper/Zipper/Zipper.php中extractOneFileInternal方法修改为以下:
    private function extractOneFileInternal($fileName, $CNName, $path)
    {
          $tmpPath = str_replace($this->getInternalPath(), '', $CNName);  // 用手动转码的中文文件名命名
    
          // We need to create the directory first in case it doesn't exist
          $dir = pathinfo($path.DIRECTORY_SEPARATOR.$tmpPath, PATHINFO_DIRNAME);
          if (!$this->file->exists($dir) && !$this->file->makeDirectory($dir, 0755, true, true)) {
              throw new \RuntimeException('Failed to create folders');
          }
    
          $toPath = $path.DIRECTORY_SEPARATOR.$tmpPath;
          $fileStream = $this->getRepository()->getFileStream($fileName);  // 用系统转码的文件名获取资源
          $this->getFileHandler()->put($toPath, $fileStream);
    }

小提示

如有侵权请邮件通知