专栏首页用户4667108的专栏改造typecho上传地址URL

改造typecho上传地址URL

前言

typecho附件上传我是一直看着难受 usr/uploads/2020/04/xxxxx.jpg 太长了于是我直接修改了上传部分 将其规范为 usr/uploads/xxxxx.jpg 这样来说好处是避免目录套目录看着舒服

修改方法

打开var/widget/upload.php 备份后替换uploadHandle函数 即可

代码

 public static function uploadHandle($file)
      {
        if (empty($file['name'])) {
          return false;
        }

        $result = Typecho_Plugin::factory('Widget_Upload')->trigger($hasUploaded)->uploadHandle($file);
        if ($hasUploaded) {
          return $result;
        }

        $ext = self::getSafeName($file['name']);

        if (!self::checkFileType($ext) || Typecho_Common::isAppEngine()) {
          return false;
        }
        $path = Typecho_Common::url(defined('__TYPECHO_UPLOAD_DIR__') ? __TYPECHO_UPLOAD_DIR__ : self::UPLOAD_DIR,
        defined('__TYPECHO_UPLOAD_ROOT_DIR__') ? __TYPECHO_UPLOAD_ROOT_DIR__ : __TYPECHO_ROOT_DIR__);

        //创建上传目录
        if (!is_dir($path)) {
          if (!self::makeUploadDir($path)) {
            return false;
          }
        }

        //获取文件名
        if (isset($file['tmp_name'])) {
          $fileName = time(). '.' . $ext;
          $path = $path . '/' . $fileName;
          //移动上传文件
          if (!@move_uploaded_file($file['tmp_name'], $path)) {
            return false;
          }
        } else if (isset($file['bytes'])) {
          $fileName = time(). '.' . $ext;
          $path = $path . '/' . $fileName;
          //直接写入文件
          if (!file_put_contents($path, $file['bytes'])) {
            return false;
          }
        } else {
          return false;
        }
 return array(
        'name' => $file['name'],
        'path' => (defined('__TYPECHO_UPLOAD_DIR__') ? __TYPECHO_UPLOAD_DIR__ : self::UPLOAD_DIR) 
        . '/' . $fileName,
        'size' => $file['size'],
        'type' => $ext,
        'mime' => Typecho_Common::mimeContentType($path)
        );
      }

后言

以后我站图片就是这样啦 干净舒服 (解决了强迫症)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 尝试cloudflare作为cdn白嫖优化站点

    cloudflare一家这么大的公司,白嫖起来真的难受,为什么我这么执着整个cdn,因为我最近在一次常规压测翻车了。

    乔千
  • PHP开发小技巧

    最近接触了typecho 所以PHP肯定就离不开手了 这里记录一些平常开发的一些小技巧

    乔千
  • 使用JS异步回调解决pjax加载问题

    使用pjax会导致部分js插件无法加载,最后我选择异步加载解决问题。 你可能会问异步就够了为什么还有个callback是干啥的,不急你先看看代码。

    乔千
  • Roman to Integer

    问题:罗马数字变为整数 class Solution { public: int romanToInt(string s) { cha...

    用户1624346
  • 十分钟入门 Python 绘图库 Matplotlib 入门教程

    Matplotlib是一个Python语言的2D绘图库,它支持各种平台,并且功能强大,能够轻易绘制出各种专业的图像。本文是对它的一个入门教程。

    小小科
  • Python 绘图库 Matplotlib 入门教程

    Matplotlib是一个Python语言的2D绘图库,它支持各种平台,并且功能强大,能够轻易绘制出各种专业的图像。本文是对它的一个入门教程。

    小小科
  • 吴军专访:为什么发展 5G?为什么需要顶级工程师?

    最近很多人都在讨论吴军,源于他在接受采访时曾对几家炙手可热的互联网公司进行了直接且大胆的点评:「腾讯从来没有过 To B 的基因」、「百度是一个基本属于僵化的公...

    用户1737318
  • 迪士尼版“智能气动夹克”,可通过物理反馈模拟真实触感 | 黑科技

    镁客网
  • Cypress web自动化34-cy.exec()执行系统命令

    cypress 提供了执行系统命令的方法 cy.exec() ,这方便在用例之前准备测试数据,和清理测试数据。

    上海-悠悠
  • 【玩转腾讯云】深度学习之《深度学习入门》学习笔记(四)神经网络的学习

    最近学习吴恩达《Machine Learning》课程以及《深度学习入门:基于Python的理论与实现》书,一些东西总结了下。现就后者学习进行笔记总结。本文是本...

    ZNing

扫码关注云+社区

领取腾讯云代金券