springboot項目引入百度ueditor富文本框

最近需求要引入類似微信公衆號文章後臺可編輯功能,所以考慮springboot(sb)項目引入ueditor富文本框。

首先就是要去官網下載ueditor需要的一些js腳本和插件

UEditor官網下載 我們選擇最新的[1.4.3.3 Jsp 版本] 版本

然後把ueditor全家桶放在項目的靜態文件目錄下

以及一些封裝的java方法 和demo

引入;

查看封裝的方法 

發現config.json要放在根目錄下,這樣才能運行不報錯,

然後運行項目 訪問index.html頁面發現沒有問題

這樣我們基本就完成了,

最後修改config.json文件, 裏面有一些圖片路徑前綴要修改下

可以修改爲靜態服務器路徑也可以修改成雲存儲路徑,就看你存儲的時候怎麼實現了。

下面是實現存儲圖片改到七牛雲的方法,在原有基礎上稍微修改了一下


public class BinaryUploader {

	public static final State save(HttpServletRequest request,
			Map<String, Object> conf) {
		// FileItemStream fileStream = null;
		// boolean isAjaxUpload = request.getHeader( "X_Requested_With" ) != null;

		if (!ServletFileUpload.isMultipartContent(request)) {
			return new BaseState(false, AppInfo.NOT_MULTIPART_CONTENT);
		}

        // ServletFileUpload upload = new ServletFileUpload(
			// 	new DiskFileItemFactory());
        //
        // if ( isAjaxUpload ) {
        //     upload.setHeaderEncoding( "UTF-8" );
        // }

		try {
			// FileItemIterator iterator = upload.getItemIterator(request);
            //
			// while (iterator.hasNext()) {
			// 	fileStream = iterator.next();
            //
			// 	if (!fileStream.isFormField())
			// 		break;
			// 	fileStream = null;
			// }
            //
			// if (fileStream == null) {
			// 	return new BaseState(false, AppInfo.NOTFOUND_UPLOAD_DATA);
			// }
			MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
			MultipartFile multipartFile = multipartRequest.getFile(conf.get("fieldName").toString());
			if(multipartFile==null){
				return new BaseState(false, AppInfo.NOTFOUND_UPLOAD_DATA);
			}

			if (true) {
				String originFileName = multipartFile.getOriginalFilename();
				String suffix = FileType.getSuffixByFilename(originFileName);

				originFileName = originFileName.substring(0,
						originFileName.length() - suffix.length());

				String uuid = UUID.randomUUID().toString().replaceAll("-", "");

				String imgurl = null;
				try {
					imgurl = QiniuUploadUtil.updateImg(multipartFile, uuid + suffix);
				} catch (Exception e) {
					e.printStackTrace();
				}

				State storageState  = new BaseState(true);
				storageState.putInfo("url", imgurl);
				storageState.putInfo("type", suffix);
				storageState.putInfo("original", originFileName + suffix);
				return storageState;

			} else {

				String savePath = (String) conf.get("savePath");
				//String originFileName = fileStream.getName();
				String originFileName = multipartFile.getOriginalFilename();
				String suffix = FileType.getSuffixByFilename(originFileName);

				originFileName = originFileName.substring(0,
						originFileName.length() - suffix.length());
				savePath = savePath + suffix;

				long maxSize = ((Long) conf.get("maxSize")).longValue();

				if (!validType(suffix, (String[]) conf.get("allowFiles"))) {
					return new BaseState(false, AppInfo.NOT_ALLOW_FILE_TYPE);
				}

				savePath = PathFormat.parse(savePath, originFileName);

				//String physicalPath = (String) conf.get("rootPath") + savePath;
				String basePath=(String) conf.get("basePath");
				String physicalPath = basePath + savePath;

				//InputStream is = fileStream.openStream();
				InputStream is = multipartFile.getInputStream();
				State storageState = StorageManager.saveFileByInputStream(is,
						physicalPath, maxSize);
				is.close();





				if (storageState.isSuccess()) {
					storageState.putInfo("url", PathFormat.format(savePath));
					storageState.putInfo("type", suffix);
					storageState.putInfo("original", originFileName + suffix);
				}
				return storageState;
			}





		// } catch (FileUploadException e) {
		// 	return new BaseState(false, AppInfo.PARSE_REQUEST_ERROR);
		} catch (IOException e) {
		}
		return new BaseState(false, AppInfo.IO_ERROR);
	}

	private static boolean validType(String type, String[] allowTypes) {
		List<String> list = Arrays.asList(allowTypes);

		return list.contains(type);
	}
}

至此,我們功能需求已實現,可以自己實現一下

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章