thinkphp 百度ueditor 1.3.6php版 图片上传及图片管理

浏览:9039 发布日期:2014/03/21 分类:技术分享
编辑器放置位置: 根目录下的 Editor 文件夹,(/Editor/ueditor.config.js)
上传的图片保存文件夹为 Uploads/Images/

一、载入JS文件<script type="text/javascript" src="__EDITOR__/ueditor.config.js"></script>
<script type="text/javascript" src="__EDITOR__/ueditor.all.js"></script>
<script type="text/javascript" src="__EDITOR__/lang/zh-cn/zh-cn.js"></script>
二、调用编辑器(以后台文章内容为例)<script id="container" name="content" type="text/plain"></script>
<script type="text/javascript">
        var editor = UE.getEditor('container');
</script>
三、图片上传设置(使用的是ueditor内置的php上传方法)

文件 ueditor.config.jswindow.UEDITOR_HOME_URL = "/Editor/"; (因为做了好几天了,
这一句设置是否有用,我已经忘了,,没办法,年纪大了,做过就忘,)


//图片上传配置区
,imageUrl:URL+"php/imageUp.php"             //图片上传提交地址
,imagePath: ""                     //图片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置

,savePath: [ 'images' ]    //图片保存在服务器端的目录, 默认为空, 此时在上传图片时会向服务器请求保存图片的目录列表,                                   

////////////////////////

//图片在线管理配置区
,imageManagerUrl:URL + "php/imageManager.php"       //图片在线管理的处理地址
,imageManagerPath: ""              //图片修正地址,同imagePath

////////////////////

//附件上传配置区
,fileUrl:URL+"php/fileUp.php"               //附件上传提交地址
,filePath: ""                   //附件修正地址,同imagePath
//,fileFieldName:"upfile"                    //附件提交的表单名,若此处修改,需要在后台对应文件修改对应参数
imagePath: "" //图片修正地址,
这里设为空,原因是 编辑器这里的配置我实在是搞不明白了,改了不少地方,上传后总是不正确,最后想到直接在Editor/php/imageUp.php 设置上传地址即可。


三、Editor/php/imageUp.php 设置上传地址    //上传配置
    $config = array(
        "savePath" => $imgSavePathConfig,
        "maxSize" => 1000, //单位KB
        "allowFiles" => array(".gif", ".png", ".jpg", ".jpeg", ".bmp"),
        "fileNameFormat" => $_POST['fileNameFormat']
    );

// 直接对savepath 进行配置修正 , 然后在下面的传值中进行替换;
   $config[ 'savePath' ] = '../../Uploads/Images/';

    //生成上传实例对象并完成上传
    $up = new Uploader("upfile", $config);
// 对json传值中进行替换;
$info = $up->getFileInfo();    
$info["url"] = str_replace("../..", "", $info["url"]);
编辑器中返回的图片即可上传成功,并返回正确的地址。

四、图片在线管理
文件:/Editor/php/imageManager.php$paths = array('images');  // 并不是必要的,但数组似乎不能为空。
//系统原有的为 array('upload/','upload1/','upload2/'),
遍历目录文件部分,,直接设置图片所在的文件夹即可。     if ( $action == "get" ) {
        $files = array();
        //foreach ( $paths as $path){
        
       $path = '../../Uploads/Images';
            $files = getfiles( $path );
            //if($tmp){
               // $files = array_merge($files,$tmp);
            //}
        //}
        if ( !count($files) ) return;
        rsort($files,SORT_STRING);
        $str = "";
        foreach ( $files as $file ) {
            $file = str_replace("../..", "", $file);
            $str .= $file . "ue_separate_ue";
        }
        echo $str;
    }
此处加载所有的图片时,可能造成程序超时,别人提出上传图片的时候,生成缩略图,比如以 2015648654_thumb.jpg 即以 _thumb结尾的缩略图,读出的时候 过滤一下即可。但好像点击插入原图的问题没解决,这个还有等完善吧。

小技巧,上传图片时,编辑器有一个选择上传目录的select 值为 upload1 upload2 什么的,如果不想要,可以在Editor\dialogs\image\image.html修改60行左右, 加个 外层div style="display: none;"<div style="display: none;">
    <div class="saveDir">
      <var id="lang_savePath" ></var><span id="saveDirSelector"><var id="lang_load_savePath"></var></span>
     </div>
 </div>
由于百度文档对新版的说的不清楚,ueditor论坛找不到答案,百度搜索了几圈子,也没找到好的解决办法,不过这样好在实现了,自定义上传地址,图片在线管理;
最佳答案
评论( 相关
后面还有条评论,点击查看>>