求助 版主:官方研发技术组
upload类文件,怎么让自定义的附件上传名称不变
类型:迅睿CMS 更新时间:2022-08-19 15:34:48 上传名称不变

upload类文件怎么写,可以让自定义的附件上传名称不变,和原来的文件名称保持一致

回帖
  • #1楼    迅睿框架创始人
    2022-06-06 12:02:20
    Google Pixel 手机 0
    参考文档:《重写系统Library类:上传文件类》思路跟这个一样,需要有点php基础的人员才能看的懂怎么去写代码
  • 小波工作室--标签和API大师
    #2楼    小波工作室--标签和API大师
    2022-06-06 12:05:56
    Chrome 0
    1、新建文件:dayrui/My/Library/Upload.php
    2、新写方法体:

    <?php namespace My\Library;


    class Upload extends \Phpcmf\Library\Upload

    {

    /**

    * 原名称

    */

    protected function _rand_save_file_path($config, $file_ext, $file) {


    $diy = 0;

    $name = '';

    if (isset($config['save_name']) && $config['save_name']) {

    if ($config['save_name'] == 'null') {

    // 按原始名称

    if (is_array($file) && isset($file['name']) && $file['name']) {

    $name = trim(\Phpcmf\Service::L('pinyin')->result(dr_safe_filename($file['name'])), '.'.$file_ext);

    }

    } else {

    $name = $config['save_name'];

    }

    }


    // 随机新名字

    !$name && $name = (is_array($file) ? dr_safe_filename($file['name']) : substr(md5(SYS_TIME.uniqid()), rand(0, 20), 15));


    if (isset($config['save_file']) && $config['save_file']) {

    // 指定存储名称

    $diy = 1;

    $file_path = $config['save_file'];

    $config['save_file'] = dirname($file_path);

    $config['attachment']['value']['path'] = 'null';

    } else {

    if (isset($config['save_path']) && $config['save_path']) {

    // 指定存储路径

    $diy = 1;

    $path = $config['save_path'];

    $config['save_file'] = $path;

    $config['attachment']['value']['path'] = 'null';

    } else {

    if (isset($config['path']) && $config['path']) {

    $path = $config['path'].'/'; // 按开发自定义参数

    } elseif (defined('SYS_ATTACHMENT_SAVE_TYPE') && SYS_ATTACHMENT_SAVE_TYPE) {

    // 按后台设置目录

    if (SYS_ATTACHMENT_SAVE_DIR) {

    $path = str_replace(

    ['{y}', '{m}', '{d}', '{yy}', '.'],

    [date('Y', SYS_TIME), date('m', SYS_TIME), date('d', SYS_TIME), date('y', SYS_TIME), ''],

    trim(SYS_ATTACHMENT_SAVE_DIR, '/')).'/';

    } else {

    $path = '';

    }

    } else {

    // 默认目录格式

    $path = date('Ym', SYS_TIME).'/';

    }

    }

    $file_path = $path.$name.'.'.$file_ext;

    }


    return [$file_path, $config, $diy];

    }


    }


    满意答案
  • 思妙
    #4楼    思妙
    2022-06-08 18:02:50
    Chrome 0
    小波工作室--标签和API大师 非常感谢,完美解决。
  • 折腾
    #5楼    折腾
    2022-08-19 15:34:48
    Chrome 0
    @小波工作室--标签和API大师:已解决问题,感谢热心回答