1. 程式人生 > >Froala Editor 在編輯器裡上傳圖片到自己的服務端

Froala Editor 在編輯器裡上傳圖片到自己的服務端

Froala Editor  控制元件看起來比較簡單,在html 可以用div 佔位,也可以用textarea 佔位  放到textarea 裡面,可以直接用form 表單直接提交textare裡的資料。

下面例子就是這種。

1.新增html 標籤

<textarea id='editor' name="content"  style="margin-top: 30px;" ></textarea> 

2.新增Froala Editor 引入 css 和js

<span style="white-space:pre">		</span><link th:href="@{|/static/froala_editor/css/froala_editor.min.css|}" rel="stylesheet" />
		<link th:href="@{|/static/froala_editor/css/froala_style.min.css|}" rel="stylesheet" />	
		<link th:href="@{|/static/froala_editor/css/plugins/colors.min.css|}" rel="stylesheet" />	
		<link th:href="@{|/static/froala_editor/css/plugins/image.min.css|}" rel="stylesheet" />
	<span style="white-space:pre">	</span><script th:src="@{|/static/froala_editor/js/froala_editor.min.js|}"></script>		
		<script th:src="@{|/static/froala_editor/js/plugins/image.min.js|}"></script>
		<script th:src="@{|/static/froala_editor/js/languages/zh_cn.js|}"></script>
3. JS 指令碼初始化
$(function (){
	//編輯器初始化並賦值	
	 $('#editor').on('froalaEditor.initialized', function (e, editor) {
		 var content = [[${cmsInfo != null} ? ${cmsInfo.content}]];
		 if(content){
			 $("#editor").froalaEditor('html.set', content);
		 }  		 
		 
       
     }).froalaEditor({
    	 placeholderText: '請輸入內容',
    	 charCounterMax: 3000,
    	 imageUploadURL: "uploadImgEditor",
    	 enter: $.FroalaEditor.ENTER_BR,
   		 language: 'zh_cn',
   	     toolbarButtons: [
   			'bold', 'italic', 'underline', 'paragraphFormat', 'align','color','fontSize','insertImage','insertTable','undo', 'redo'
   	      ]
     });

注意跟上傳圖片相關的就是 imageUploadURL 屬性,我這裡上傳的URL  為 uploadImgEditor.下面看一下後臺程式碼。

4.後臺程式碼

/**
	 * 上傳Froala Editor 圖片
	 * @throws Exception
	 */
	@RequestMapping("uploadImgEditor")
	@ResponseBody 
	Map<String, String> uploadImgEditor(MultipartHttpServletRequest request, Model model) throws Exception {
		
		CommonsMultipartFile orginalFile = (CommonsMultipartFile) request.getFile("file");
		Map<String, String> map = new HashMap<>();
		String path = "/upload/froala_editor";	
		String url = "";
		String fileType=FileUtil.getFileNameFullExtension(orginalFile.getOriginalFilename());
		try {
			url = FileUtil.uploadFileAllType(orginalFile, path,fileType);	
			
			map.put("link", url);
		} catch (Exception e) {
					
		}
		return map;
		
	}

需要返回HashMap 格式的,且形如  

{"link":"http://i.froala.com/images/missing.png"}

上面的方法,可以滿足這樣的條件,不是這樣的格式,會報錯。

不是上傳到本地的  在引入的js裡 有預設的上傳路徑  :imageUploadURL:"http://i.froala.com/upload",

大家可以訪問這個路徑,會得到上面的那樣格式的返回資料。

5.效果圖