AngularJS+ckediter+ckfinder实现粘贴图片上传+图片上传

1:自定义指令

  

App.directive('ckeditor', function() {

	return {

		require : '?ngModel',

		link : function(scope, element, attrs, ngModel, disabled) {
  
			var ckeditor = CKEDITOR.replace(element[0], {

			});
		   //需要指定ckfinder包的位置
			ckeditor.config.ckfinderPath="/static/ckfinder"; 
			//ckeditor上传文件根路径,最后拼接的路径,可以拓展成每个实例独有的
			ckeditor.config.ckfinderUploadPath="/ckeditor"
			//粘贴上传图片请求的后台地址(这里自定义实现)
			ckeditor.config.uploadUrl='/test/testUpload/ckeditorUpload';
			//上传文件请求地址
			ckeditor.config.filebrowserUploadUrl = ckeditor.config.ckfinderPath+'/core/connector/java/connector.java?command=QuickUpload&type=files&currentFolder='+ckeditor.config.ckfinderUploadPath;
//上传图片请求地址
			ckeditor.config.filebrowserImageUploadUrl = ckeditor.config.ckfinderPath+'/core/connector/java/connector.java?command=QuickUpload&type=images&currentFolder='+ckeditor.config.ckfinderUploadPath;
		 
			if (!ngModel) {

				return;

			}
			if(disabled='disabled'){
			}
			ckeditor.on('instanceReady', function() {

				ckeditor.setData(ngModel.$viewValue);

			});

			ckeditor.on('pasteState', function() {

				scope.$apply(function() {

					ngModel.$setViewValue(ckeditor.getData());

				});

			});

			ngModel.$render = function(value) {

				ckeditor.setData(ngModel.$viewValue);

			};

		}

	};

});

主要是注意这一块设置

2:粘贴上传后台接收

	//富文本编辑器粘贴上传图片
	@RequestMapping(value = "ckeditorUpload", method = RequestMethod.POST)
	public @ResponseBody CkUploadResponsEntity ckeditorUpload(HttpServletRequest request,@RequestParam("upload") MultipartFile file, MultipartHttpServletRequest MultiRequest) throws Exception {
		
	

图片会用upload参数带进来,处理逻辑不贴了,要注意的是返回值格式

使用@ResponseBody 配合封装的实体解决了返回值的问题

3:图片上传按钮

这里请求的路径对应前面指令里的这个

ckeditor.config.filebrowserUploadUrl

最终的文件传地址会拼接ckfinder的

baseDir+type+currentFolder+文件名

最终的文件访问地址会拼接

baseURL+type+currentFolder+文件名

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值