您现在的位置是:ecms - 技术吧
  • 帝国CMS上传附件保留原文件名

    修改帝国CMS上传文件函数DoTranFile

    修改函数ReturnDoTranFilename,打开文件/e/class/connect.php

    找到function ReturnDoTranFilename($file_name,$classid)

    保留原文件名.png


    修改后的代码

    //上传文件
    function DoTranFile($file, $file_name, $file_type, $file_size, $classid, $ecms = 0) {
        global $public_r, $class_r, $doetran, $efileftp_fr;
        $classid = (int) $classid;
        //文件类型
        $r[filetype] = GetFiletype($file_name);
        // 上传附件保留原文件名
        $filename2 = str_replace($r[filetype], '', $file_name); //获得去掉后缀的文件名
        $mytype = array(".txt", ".rar", ".zip", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pdf"); //定义需要保留原名的文件类型
        //文件名
        $r[insertfile] = ReturnDoTranFilename($file_name, $classid);
        $r[filename] = $r[insertfile].$r[filetype];
        // 保留原文件名
        if( in_array($r[filetype], $mytype) ) {
            $r[filename] = $filename2."_".$r[insertfile].$r[filetype]; //将真实文件名加在随机码的前面中间以_分隔
        } else {
            $r[filename] = $r[insertfile].$r[filetype];
        }
        //日期目录
        $r[filepath] = FormatFilePath($classid, $mynewspath, 0);
        $filepath = $r[filepath] ? $r[filepath].'/' : $r[filepath];
        //存放目录
        $fspath = ReturnFileSavePath($classid);
        $r[savepath] = eReturnEcmsMainPortPath().$fspath['filepath'].$filepath; //moreport
        //附件地址
        $r[url] = $fspath['fileurl'].$filepath.$r[filename];
        //缩图文件
        $r[name] = $r[savepath]."small".$r[insertfile];
        //附件文件
        $r[yname] = $r[savepath].$r[filename];
        $r[tran] = 1;
        //验证类型
        if( CheckSaveTranFiletype($r[filetype]) ) {
            if( $doetran ) {
                $r[tran] = 0;
                return $r;
            } else {
                printerror('TranFail', '', $ecms);
            }
        }
        //上传文件
        $cp = @move_uploaded_file($file, $r[yname]);
        if( empty($cp) ) {
            if( $doetran ) {
                $r[tran] = 0;
                return $r;
            } else {
                printerror('TranFail', '', $ecms);
            }
        }
        DoChmodFile($r[yname]);
        $r[filesize] = (int) $file_size;
        //FileServer
        if( $public_r['openfileserver'] ) {
            $efileftp_fr[] = $r['yname'];
        }
        return $r;
    }

    yuli0927 2019年08月19日 标签: PHP ecms分类: PHP

  • 帝国CMS修改https后台登录空白

    打开/e/class/connect.php文件

    // 注释
    return 'http://'.$domain;
    // 修改为 
    return ($_SERVER['HTTPS'] ? 'https':'http').'://'.$domain;

    yuli0927 2018年09月30日 标签: PHP CMS ecms分类: PHP

  • 修改帝国CMS上传附件的命名方式(保留原文件名)

    修改帝国CMS上传文件函数DoTranFile

    修改函数ReturnDoTranFilename,打开文件/e/class/connect.php
    找到function ReturnDoTranFilename($file_name,$classid)


    点击查看原图


    //返回上传文件名
    //2019-12-04指定后缀保留文件名
    function ReturnDoTranFilename($file_name, $classid) {
        // $filename = md5(uniqid(microtime()).EcmsRandInt());
        //文件类型
        $r[filetype] = GetFiletype($file_name);
        //定义需要保留原名的文件类型
        $mytype = array(".png", ".jpg", ".gif", ".rar", ".zip", ".pdf", ".txt", ".doc", "docx", "xls", "xlsx", "ppt", "pptx");
        if( in_array($r[filetype], $mytype) ) {
            //去掉后缀的文件名
            $true_name = str_replace($r[filetype], '', $file_name);
            //替换空格
            $space=array(" "," ");
            //增加随机数后缀
            $filename = str_replace($space, "_", $true_name)."_".no_make_password(6);
        } else {
            //生成日期时间格式的文件名
            list($usec, $sec) = explode(" ", microtime());
            $usec=intval($usec*10000);
            //增加随机数后缀
            $filename = date("YmdHis",$sec).$usec.no_make_password(6);
        }
        return $filename;
    }

    yuli0927 2016年12月01日 标签: PHP CMS ecms分类: PHP