文章目录
总结一下今天在使用summernote富文本中上传图片并保存到Oracle数据库时出现的各种问题以及解决方案。供大家遇到相同问题时的参考~
Summernote
summernote轻量级富文本编辑器,官网:https://summernote.org/,这里不多介绍,主要说问题。
问题一:Uncaught TypeError: $(…).summernote is not a function
出现这个问题,一般原因是你的summernote版本和jQuery版本不匹配。(参考)
解决办法: 去summernote官网中检查最新示例使用到的jQuery版本,并在自己的项目里引入对应版本的jQuery。
但若是在原有系统中添加,使用的是旧版jQuery,此方法慎用,因为修改jQuery版本可能会导致更多问题!
应去查找原系统中jQuery版本对应的summernote版本js。
问题二 :GET http://***/summernote.min.js net::ERR_ABORTED 404 (Not Found)
解决办法: 这种问题多为本地js的引用路径没有写对,根据自己的项目检查路径并修改即可。
Oracle
ORA-01461 :
在我成功使用summernote插入图片在页面文本框回显后,提交保存到数据库时报错——
ORA-01461: can bind a LONG value only for insert into a LONG column(仅能绑定要插入 LONG 列的 LONG 值)
这个异常是指,用户向数据库执行插入数据操作时,某条数据的某个字段值过长,如果是varchar2类型的,当长度超过2000,–4000(最大值)之间的时候,oracle会自动将该字段值转为long型的,然后,插入操作失败。
出现这个错误的原因是使用summernote插入图片后,它会默认把图片转换为base64
二进制字节码,导致字段长度超出。若是不想另写文件上传的类和方法,只改oracle数据库是最好的解决办法。
解决办法: 将此字段的类型改为CLOB或者BLOB类型
oracle中Blob和Clob类型的区别与用法引用大佬的文章,我这里就不多讲解了。
但是直接在oracle中修改字段类型,将varchar改为clob时又出现了新问题:
ORA-22858 :
ORA-22858 invalid alteration of datatype(修改的字段类型错误)
原因是Oracle不允许将字段类型修改为:object、REF、nested table、varchar、clob、blob
解决办法: 新建一个正确的字段,将数据同步的到新字段后删除错误的字段。