[散分]为编辑小MM提供的服务代码。关于图片上传的。
我们在工作中遇到了如下场景:编辑小妹需要发布图文混排的内容,图片有点偏多,一篇内容约有20来张图片,一天要发布200多篇,用编辑器自带的图片上传有点效率不够。
目标:提升上传效率.
方法一. 直接上word 另存为html,再把里面的图片单独上传到指定目录,再把html 代码放到编辑器内,提交后数据适配一下。此方法比较适合word 版内容发布.具体实例,不做详述。
方法二. 用firefox ,编辑器可以支持 截图后粘贴。通常直接用qq截图,提交后 数据为html5 图片,ie下不显示,再折腾折腾转为常规html img 就好了,代码如下。
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//data 为提交表单数据,数组格式$data = $_POST["data"];$data = filter( $data ); //转换data 数据// 剩下的事件,插入数据库,生成静态贴之类。。。
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//转换处理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);}