java如何使用CKEditor实现图片上传功能,具体内容如下

1.根据实际需要下载指定的CKEditor
2.删除文件ckeditor/plugins/image/dialogs/image.js预览框中文本内容,并修改hidden属性值为显示上传选项卡
删除image.js中包含在双引号中的上述文本
将image.js中的hidden属性值改为0
3.修改ckeditor/config.js文件,配置“上传到服务器”按钮调用的controller接口
4.“上传到服务器”按钮调用的controller级别的接口
@Controller
@RequestMapping("publicutil")
public class PublicUtilController {
@RequestMapping(value = "uploadImage")
private void uploadImage(HttpServletRequest request, HttpServletResponse response, HttpSession session,@RequestParam MultipartFile[] upload) {
response.setCharacterEncoding("UTF-8");
PrintWriter out=null;
try {
out = response.getWriter();
} catch (IOException e1) {
logger.error("response.getWriter()异常="+e1);
e1.printStackTrace();
}
String callback = request.getParameter("CKEditorFuncNum");
// 获得response,request
Map<String, Object> m = new HashMap<String, Object>();
if (!ServletFileUpload.isMultipartContent(request)) {
m.put("error", 1);
m.put("message", "请选择文件!");
//return m;
logger.info("请选择文件!");
}
String originalFileName=null;//上传的图片文件名
String fileExtensionName=null;//上传图片的文件扩展名
for (MultipartFile file : upload) {
if (file.getSize()> 10*1024* 1024) {
out.println("<script type=\"text/javascript\">");
out.println("window.parent.CKEDITOR.tools.callFunction(" + callback
+ ",''," + "'文件大小不得大于10M');");
out.println("</script>");
}
originalFileName=file.getOriginalFilename();
logger.info("上传的图片文件名="+originalFileName);
fileExtensionName= originalFileName.substring(
originalFileName.lastIndexOf(".") ,originalFileName.length()).toLowerCase();
logger.info("图片文件扩展名="+fileExtensionName);
String[] imageExtensionNameArray= WebsiteConstant.IMAGE_EXTENSION_NAME_ARRAY;
String allImageExtensionName="";
boolean isContain=false;//默认不包含上传图片文件扩展名
for(int i=0;i<imageExtensionNameArray.length;i++){
if(fileExtensionName.equals(imageExtensionNameArray[i])){
isContain=true;
}
if(i==0){
allImageExtensionName+=imageExtensionNameArray[i];
}else{
allImageExtensionName+=" , "+imageExtensionNameArray[i];
}
}
String newFileName=java.util.UUID.randomUUID().toString()+fileExtensionName;
String uploadPath =WebsiteConstant.PIC_APP_FILE_SYSTEM_CKEDITOR_LOCATION;
if(isContain){//包含
File pathFile = new File(uploadPath);
if (!pathFile.exists()) { // 如果路径不存在,创建
pathFile.mkdirs();
}
try {
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(uploadPath ,newFileName));
// InputStream is=file.getInputStream();
// File toFile = new File(uploadPath, newFileName);
// OutputStream os = new FileOutputStream(toFile);
// byte[] buffer = new byte[1024];
// int length = 0;
// while ((length = is.read(buffer)) > 0) {
// os.write(buffer, 0, length);
// }
// is.close();
// os.close();
} catch (IOException e) {
logger.error("FileUtils.copyInputStreamToFile uploadPath="+uploadPath+" newFileName ="+newFileName+" exception="+e);
}
String imageUrl=WebsiteConstant.PIC_APP_SERVER_URL+"images/ckeditor/"+newFileName;
// 返回"图像信息"选项卡并显示图片 ,在对应的文本框中显示图片资源url
out.println("<script type=\"text/javascript\">");
out.println("window.parent.CKEDITOR.tools.callFunction(" + callback
+ ",'" +imageUrl + "','')");
out.println("</script>");
}else{
out.println("<script type=\"text/javascript\">");
out.println("window.parent.CKEDITOR.tools.callFunction(" + callback
+ ",''," + "'文件格式不正确(必须为"+allImageExtensionName+"文件)');");
out.println("</script>");
}
}
}
}
<span style="font-size:14px;">public class WebsiteConstant {
public static String[] IMAGE_EXTENSION_NAME_ARRAY={".jpg",".jpeg",".png",".gif",".bmp"};
public static String PIC_APP_SERVER_URL="http://localhost:8090/Picture/";
public static String PIC_APP_FILE_SYSTEM_CKEDITOR_LOCATION="/Users/abc/Documents/tomcat/webapps/Picture/images/ckeditor/";
public static final int SUCCESS = 1; // 操作成功
</span>
5.若是在Maven项目中使用的CKEditor,需要在pom.xml中添加如下代码:
<dependency> <groupId>com.ckeditor</groupId> <artifactId>ckeditor-java-core</artifactId> <version>3.5.3</version> </dependency>
6.最终效果图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# CKEditor
# 图片上传
# Java实现图片上传到服务器并把上传的图片读取出来
# java web图片上传和文件上传实例
# java通过模拟post方式提交表单实现图片上传功能实例
# Java以struts2为例介绍如何实现图片上传
# JavaWeb实现裁剪图片上传完整代码
# Java图片上传实现代码
# Java实现的图片上传工具类完整实例
# 微信 java 实现js-sdk 图片上传下载完整流程
# Java+mysql本地图片上传数据库及下载示例
# java实现多图片上传功能
# 文件扩展名
# 请选择
# 上传
# 上传图片
# 框中
# 选项卡
# 不存在
# 不正确
# 如何使用
# 具体内容
# 值为
# 大家多多
# 不包含
# 双引号
# Map
# getParameter
# CKEditorFuncNum
# callback
# String
相关文章:
如何在建站宝盒中设置产品搜索功能?
建站之星客服服务时间及联系方式如何?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何安全更换建站之星模板并保留数据?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
大同网页,大同瑞慈医院官网?
孙琪峥织梦建站教程如何优化数据库安全?
如何通过可视化优化提升建站效果?
制作宣传网站的软件,小红书可以宣传网站吗?
建站之星如何优化SEO以实现高效排名?
建站之星后台管理:高效配置与模板优化提升用户体验
魔方云NAT建站如何实现端口转发?
如何快速配置高效服务器建站软件?
开心动漫网站制作软件下载,十分开心动画为何停播?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何续费美橙建站之星域名及服务?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
建站之星24小时客服电话如何获取?
北京专业网站制作设计师招聘,北京白云观官方网站?
如何快速生成橙子建站落地页链接?
建站之星导航如何优化提升用户体验?
常州自助建站工具推荐:低成本搭建与模板选择技巧
建站ABC备案流程中有哪些关键注意事项?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
中山网站制作网页,中山新生登记系统登记流程?
大连 网站制作,大连天途有线官网?
如何获取上海专业网站定制建站电话?
seo网站制作优化,网站SEO优化步骤有哪些?
,购物网站怎么盈利呢?
如何在阿里云完成域名注册与建站?
如何撰写建站申请书?关键要点有哪些?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
如何挑选最适合建站的高性能VPS主机?
如何选择高效响应式自助建站源码系统?
郑州企业网站制作公司,郑州招聘网站有哪些?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
Java解压缩zip - 解压缩多个文件或文件夹实例
如何在Windows 2008云服务器安全搭建网站?
建站之星各版本价格是多少?
建站主机如何选?高性价比方案全解析
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
*服务器网站为何频现安全漏洞?
Python文件管理规范_工程实践说明【指导】
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
Swift中swift中的switch 语句
如何快速查询域名建站关键信息?
历史网站制作软件,华为如何找回被删除的网站?
建站主机是否属于云主机类型?
*请认真填写需求信息,我们会在24小时内与您取得联系。