当前位置: 首页 > Web前端 > HTML5

CKEditor4.7怎么上传图片,浏览服务器(不用ckfinder),nodejs图片管理,字体居中,图片居中(超级详细)

时间:2023-04-05 13:16:06 HTML5

先下载CKEditor,下载地址:http://ckeditor.com/download里面选择自定义Customize,如图,然后进入配置界面。首先选择的预设通常是标准标准。第二个需要补充两点。第一个是对齐。它的作用是添加一个左对齐、右对齐、居中的按钮。您可以将字体居中,但仅添加它不能使图片居中。第二个是增强图像。有了它,您可以将图片居中。然后根据自己的需要添加,但是注意很多不支持4.7版本,慎重添加,添加多了编辑器无法显示。然后选择皮肤,添加语言language,这里我添加了中文简体和中文繁体,根据你的需要。最后勾选协议协议,点击下载。下载解压后会得到一个文件夹,这个就是你需要的文件夹,放到你的项目public中,打开文件夹里面有一个ckeditor.js文件,传入添加到你的网页,你可以在网页中使用它,使用方法:content然后就可以在网页上看到效果了。我们点开图片,发现没有上传图片的功能,也没有浏览服务器的功能。下面我们来实现一张一张上传图片的功能。找到ckeditor文件夹,进入后找到plugins,点击找到iamge2文件夹,进入后找到image2.js,用编辑器打开,搜索hidden,这个文件只有两个隐藏的地方,找到hiddenwith'上传'的ID,删除'!''!0'的,如图:此时刷新页面点击图片,会发现此时上传标签多了可以点击ChooseFile上传图片,但是点击Uploadtothe服务器上传图片。这时候需要在ckeditor文件夹下的config.js配置文件中加入一段代码:config.filebrowserUploadUrl='/ckeditorUpload?type=File';配置.filebrowserImageUploadUrl="/ckeditorUpload?type=image";config.filebrowserFlashUploadUrl='/ckeditorUpload?type=Flash';一般只加第一个,也可以三个都加。顾名思义,看它的名字就能明白它是什么意思?后端是您的服务器后台。回复过去并上传到您的服务器上。每种语言的实现是不同的。我不会在这里详细介绍。如果您有任何疑问,可以去查看您使用的语言的文件上传方法,上传图片的功能就实现了。然后就是浏览服务器的功能,但是上面没有按钮,怎么实现呢?其实很简单,只要在刚才的config.js文件中加入这段代码即可:config.filebrowserImageBrowseUrl='/browerServer?type=image';后者是你的服务器响应地址,保存刷新页面,发现按钮出来了,但是如何实现对服务器中图片的管理呢?这里每种语言的实现都是不同的。图片管理代码大家可以自行搜索,网上看到很多Java和PHP,很少看到nodejs。下面是nodejs的实现方法:servercode:router.get('/browerServer',function(req,res,next){varcallback=req.query.CKEditorFuncNum;varimgPath=".\/public\/images\/uploads";varimgInfols=[];try{varfiles=rd.readSync(imgPath);for(variinfiles){if(!fs.lstatSync(files[i]).isDirectory()){if(files[i].toLowerCase().split(/\.(jpg|jpeg|png|gif|bmp)$/).reverse()[0].length==0){console.log(files[i]);imgInfols[imgInfols.length]={name:files[i].split("\/").reverse()[0],//获取文件名url:files[i].split("\/public").reverse()[0],mtime:fs.statSync(files[i]).mtime}}}}}catch(e){console.log(e);}imgInfols.sort(function(a,b){returnDate.parse(b.ctime)-Date.parse(a.ctime);});控制台日志(回调);res.render('adminImgManage',{results:imgInfols,callback:callback});});adminImgManage.ejs代码://这里我用了image-picker,详见http://rvera.github.io/image-...<%include../header.ejs%>

选择删除
<%results.forEach(function(item){%>"value="<%=item.name%>"><%=item.name%><%})%>
<%include../footer.ejs%>图片选择服务器处理代码:router.get('/adminSelectImg/:name/:callback',function(req,res,next){varname=req.params.name;varcallback=req.params.callback;varstr="";res.send(str);});删除的代码不再具有粘性。代码中的window.opener.CKEDITOR.tools.callFunction,这个是ckeditor的反值函数,执行后括号后面的路径会加载到图片信息的url中,所以点击确定将图片放入编辑器设备