PHP使用summernote编辑器
summernote是一个很好用的编辑器,简单大方,基本功能都有,我只记录使用图片上传接口和获取内容接口功能的演示,其他的功能暂时还没有用到,下面是summernote编辑器的样子
1.summernote界面的代码
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>图集内容上传</title> <link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet"> <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script> <script src="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js"></script> <link href="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.3/summernote.css" rel="stylesheet"> <script src="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.3/summernote.js"></script> <link rel="stylesheet" href="/public/static/assets/css/amazeui.min.css" /> </head> <body style="width: 80%;margin: auto;" > <form method="post" action="/index.php/admin/picture/form" id="myform"> <div id="summernote" >123</div> <input type="hidden" name="content" id="content" value=""> <div class="am-form-group" align="center"> <div class="am-u-sm-12" > <button type="button" class="am-btn am-btn-default am-btn-danger" onclick="submit_content()">保存内容</button> </div> </div> </form> <script> function submit_content(){ var content = $('#summernote').summernote('code'); document.getElementById('content').value = content; document.getElementById('myform').submit(); } $(document).ready(function() { var summernote = $('#summernote').summernote({ maxHeight: 500, minHeight: 400, lang: 'zh-CN', focus: true, callbacks:{ onImageUpload: function(files,editor,$editable){ sendFile(files); } } }); }); //选择图片时把图片上传到服务器再读取服务器指定的存储位置显示在富文本区域内 function sendFile(files, editor, $editable) { var formdata = new FormData(); formdata.append("file", $('.note-image-input')[0].files[0]); $.ajax({ data : formdata, type : "POST", url : "/index.php/admin/picture/upload_image", //图片上传出来的url,返回的是图片上传后的路径,http格式 cache : false, contentType : false, processData : false, dataType : "json", success: function(data) { // alert(data); //data是返回的hash,key之类的值,key是定义的文件名 $('#summernote').summernote('insertImage', data); }, error:function(){ alert("上传失败"); } }); } </script> </body> </html> |
var content = $('#summernote').summernote('code');
这段代码可以获取到编辑器中的内容
sendfile函数中,url表示图片上传到PHP函数的地址,返回值为json格式的图片地址
下面是thinkphp5中的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
public function upload_image($name){ $image = \request()->file($name); if($image){ /** * //判断图片文件的格式 * 判断图片大小 最大为10mb */ $info = $image->validate(['size'=>10000000,'ext'=>'jpg,png,jpeg'])->move(ROOT_PATH . 'public' . DS . 'uploads'); // echo $info->getSize(); // $info->getExtension() //判断图片文件的格式 // $info->getSize()>10000000 //判断图片文件的格式 if($info){ $image_src = '/public/uploads/'.$info->getSaveName(); return $image_src; }else{ return '0'; } }else{ return '0'; } } |