爲編輯小MM提供的服務代碼。關於圖片上傳的。

我們在工作中遇到了如下場景:編輯小妹需要發佈圖文混排的內容,圖片有點偏多,一篇內容約有20來張圖片,一天要發佈200多篇,用編輯器自帶的圖片上傳有點效率不夠。
目標:提升上傳效率.
方法一. 直接上word 另存爲html,再把裏面的圖片單獨上傳到指定目錄,再把html 代碼放到編輯器內,提交後數據適配一下。此方法比較適合word 版內容發佈.具體實例,不做詳述。

方法二. 用firefox ,編輯器可以支持 截圖後粘貼。通常直接用qq截圖,提交後 數據爲html5 圖片,ie下不顯示,再折騰折騰轉爲常規html img 就好了,代碼如下。
PHP code?
1
2
3
4
5
//data 爲提交表單數據,數組格式
$data $_POST["data"];
$data = filter( $data );  //轉換data 數據
//  剩下的事件,插入數據庫,生成靜態貼之類。。。


PHP code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//轉換處理
function filter( $data )
{
    if( sizeof($data ))
    {
        foreach ($data   as $key => $val):
            if(preg_match_all("/<img\s+src=\"data:image\/png;base64,([^\"]+)\"/iU" $val ,$match))
            {
                if(sizeof($match[1]))
                {
                    foreach ($match[1] as $key2 => $val2):
                        list($newFilePath$newFileName) = create_png_name();
                        file_put_contents($newFilePath base64_decode($val2) );
 
                        $val str_replace("<img src=\"data:image/png;base64,$val2\"" ,"<img src = '$newFileName'" $val );
                      //  echo $val;
                    endforeach;
                }
                $data[$key] = $val;
            }
         endforeach;
    }
    return $data;
}
 
function create_png_name()
{
    $fileName "/upload/attached/".date("Y-m-d")."/".date("ymdhis").rand(1000,9999).".jpg";
    $file $_SERVER["DOCUMENT_ROOT"] . $fileName ;
    $dir pathinfo$file , PATHINFO_DIRNAME );
    if( !is_dir($dir  )) { mkdir$dir   , 0777 , 1);}
     return array($file $fileName);
}

PS: 最近公事私事,事事煩心,越來越沒精力專注的做開發了,時間倉促,更多的是表達一種使工作便利的想法,還想各位批評指正。
發佈了34 篇原創文章 · 獲贊 14 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章