Ueditor圖片上傳轉存

爲了減小垃圾數據(操做失誤的圖片),在ueditor上傳圖片時,先存儲在指定臨時文件夾,當數據提交到服務器時再將ueditor內容中的圖片逐一保存到指定的圖片文件夾php

1.找到./php/config.json,修改成本身指定的路徑,正則表達式

/*"imagePathFormat": "/Public/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,能夠自定義保存路徑和文件名格式 */
"imagePathFormat": "/temp/upload/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,能夠自定義保存路徑和文件名格式 */

2.當ueditor內容提交到對應方法時json

$str = $this->input->post('editorValue');
if ( strstr($str, '<img')){
    $match  = imgSelect($str);
    $newstr = str_replace('/temp/upload/'.date('Ymd'),$data['config']['image_url'].'bbs/'.date('Ym'),$str);
}else{
    $newstr = $str;
}

imgSelect (),這個是自定義匹配圖片路徑的正則表達式數組

$newmatch  =  imgSelect ($newstr);
foreach ($newmatch[1] as $newmatkey => $newmatval){
    foreach ($match[1] as $matkey => $matval){
        if(substr($newmatval,strpos($newmatval,date('Ym').'/')+7) == substr($matval,strpos($matval,date('Ymd').'/')+9)) {
            $newmatval = substr($newmatval, strpos($newmatval, '.com/') + 4);
            $data_file = file_get_contents(str_replace('//t', '/t', $data['config']['base_url'] . $matval));
            file_put_contents('..' . $newmatval, $data_file);
        }

    }
}

自定義 imgSelect ()服務器

/***************
 * @function       img標籤過濾
 * @Param:         $str :傳入參數
 *@Return:         $match :數組
 * 提示:
 ***************/
function  imgSelect ($str){
    $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/";
    preg_match_all($pattern,$str,$match);
    return $match;
}
相關文章
相關標籤/搜索