首页 > 代码库 > ueditor 百度编辑器 自定义图片上传路径和格式化上传文件名

ueditor 百度编辑器 自定义图片上传路径和格式化上传文件名

今天项目中需要自定义图片上传的保存路径,并且不需要按照日期自动创建存储文件夹和文件名,我的ueditor版本是1.3.6。下面记录一下我配置成功的方法,如果有什么不对的地方欢迎指出,共同学习:

1:我在本地项目的根目录下新建一个文件夹,比如:upload。

2:打开ueditor/php/config.php,改成如下代码后保存:

<?php

    return array(

    //图片上传允许的存储目录
    /*‘imageSavePath‘ => array (
        ‘upload1‘, ‘upload2/‘
    )*/

  //图片上传允许的存储目录,可配置多个,我这里配置的是到根目录下的upload文件夹 ‘imageSavePath‘ => array ( ‘../../upload‘ ) );

3:打开ueditor/php/imageUp.php,加入将../../去掉的代码:

找到:$info = $up->getFileInfo(); 在这后面加入下面代码:

$info["url"]=str_replace(‘../../‘,‘‘,$info["url"]); //将../../替换掉。

4:打开ueditor/php/Uploader.class.php,这一步将修改按照日期自动创建存储文件夹的代码,修改后将不会自动生成日期文件夹:

/**
     * 按照日期自动创建存储文件夹
     * @return string
     */
    private function getFolder()
    {
        $pathStr = $this->config[ "savePath" ];
        if ( strrchr( $pathStr , "/" ) != "/" ) {
            $pathStr .= "/";
        }
        //$pathStr .= date( "Ymd" ); //将这行代码注释掉
        if ( !file_exists( $pathStr ) ) {
            if ( !mkdir( $pathStr , 0777 , true ) ) {
                return false;
            }
        }
        return $pathStr;
    }

这里遇到一个问题:上传后路径upload后面多了一个“/”,比如:/ueditor/php/upload//1396072919176817.jpg。要去掉这个/,修改如下代码:

private function upFile( $base64 )
{
   ...
   //找到这行代码(大概在103行):
  $this->fullName = $this->getFolder() . ‘/‘ . $this->getName();
  
  //将上面这行中的代码修改成下面这样,去掉/:
  $this->fullName = $this->getFolder() . $this->getName();
}

5:打开ueditor/ueditor.all.min.js,这步将格式化上传文件名,先搜索“fileNameFormat”:

将fileNameFormat:"{time}{rand:6}"} 改成:fileNameFormat:"{filename}"}

//格式化字符串的参数
{filename}  //会替换成文件名
{rand:6}    //会替换成随机数,后面的数字是随机数的位数
{time}      //会替换成时间戳
{yyyy}      //会替换成四位年份
{yy}        //会替换成两位年份
{mm}        //会替换成两位月份
{dd}        //会替换成两位日期
{hh}        //会替换成两位小时
{ii}        //会替换成两位分钟
{ss}        //会替换成两位秒

//例子:
//配置项为:
//fileNameFormat = "{yyyy}-{mm}-{dd}_{rand:4}_{filename}" 
//上传的文件名可能是这样: 
//"2013-12-16_7126_照片.jpg" 

//配置项为: 
//fileNameFormat = "{time}_{rand:5}" 
//上传的文件名可能是这样: 
//"1387191121817_29461.jpg"

6:打开ueditor/ueditor.config.js,找到34行左右:

 //,imagePath:URL + "php/"    //图片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置
//将上面的改成(这里是相对路径,可根据你自己需求修改):
,imagePath:"/"

 

好了,刷新上传的框架,测试上传看看吧,效果如图: