springMvc+Kindeditor整合

@RequestMapping(value = "/Kindeditor/uploadFile", method = RequestMethod.POST)
	
	public void uploadFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
		PrintWriter writer = response.getWriter();
		try {
			// 文件保存目录路径
			String savePath = request.getSession().getServletContext().getRealPath("/") + "upload" + File.separatorChar
					+ "products" + File.separatorChar;
			String saveUrl = request.getContextPath()+ File.separatorChar + "upload" + File.separatorChar
					+ "products" + File.separatorChar;

			// 定义允许上传的文件扩展名
			HashMap<String, String> extMap = new HashMap<String, String>();
			extMap.put("image", "gif,jpg,jpeg,png,bmp");

			// 最大文件大小
			long maxSize = 1000000;
			response.setContentType("text/html; charset=UTF-8");

			if (!ServletFileUpload.isMultipartContent(request)) {
				writer.println(getError("请选择文件。"));
				return;
			}

			File uploadDir = new File(savePath);
			// 判断文件夹是否存在,如果不存在则创建文件夹
			if (!uploadDir.exists()) {
				uploadDir.mkdirs();
			}

			// 检查目录写权限
			if (!uploadDir.canWrite()) {
				writer.println(getError("上传目录没有写权限。"));
				return;
			}

			String dirName = request.getParameter("dir");
			if (dirName == null) {
				dirName = "image";
			}
			if (!extMap.containsKey(dirName)) {
				writer.println(getError("目录名不正确。"));
				return;
			}
			
			MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
			Map<String, MultipartFile> fileMap = mRequest.getFileMap();
			String fileName = null;
			for (Iterator<Map.Entry<String, MultipartFile>> it = fileMap.entrySet().iterator(); it.hasNext();) {
				Map.Entry<String, MultipartFile> entry = it.next();
				MultipartFile mFile = entry.getValue();
				fileName = mFile.getOriginalFilename();
				// 检查文件大小
				if (mFile.getSize() > maxSize) {
					writer.println(getError("上传文件大小超过限制。"));
					return;
				}
				String fileExt = fileName.substring(fileName.lastIndexOf(".")+1);
				if (!Arrays.<String> asList(extMap.get(dirName).split(",")).contains(fileExt)) {
					writer.println(getError("上传文件扩展名是不允许的扩展名。\n只允许" + extMap.get(dirName) + "格式。"));
					return;
				}
			    UUID uuid = UUID.randomUUID();
			    String path = savePath + uuid.toString() +"."+ fileExt;
			    saveUrl = saveUrl  + uuid.toString() +"."+ fileExt;
				BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(path));
				FileCopyUtils.copy(mFile.getInputStream(), outputStream);
				
				JSONObject obj = new JSONObject();
				obj.put("error", 0);
				obj.put("url", saveUrl);
				writer.println(obj.toString());
				
			}
			
		} catch (ServiceException serviceException) {
			writer.println(getError(ApplicationContextUtil.getMessage(serviceException)));
			return;
		}
	}
	
	private String getError(String message) {
		JSONObject obj = new JSONObject();
		obj.put("error", 1);
		obj.put("message", message);
		return obj.toString();
	}


	<link rel="stylesheet" href="<c:url value='/scripts/kindeditor/themes/default/default.css'/>" type="text/css"/>
	<link rel="stylesheet" href="<c:url value='/scripts/kindeditor/plugins/code/prettify.css'/>" type="text/css"/>
	<script charset="utf-8" src="<c:url value='/scripts/kindeditor/kindeditor-all.js'/>" type="text/javascript"></script>
	<script charset="utf-8" src="<c:url value='/scripts/kindeditor/lang/zh-CN.js'/>" type="text/javascript"></script>
	<script charset="utf-8" src="<c:url value='/scripts/kindeditor/plugins/code/prettify.js'/>" type="text/javascript"></script>


<form:textarea path="esCfgProduct.introduction" id="introduction" cssStyle="width:700px;height:300px;"/>


KindEditor.ready(function(K) {
        var introduction = K.create('#introduction',{
        	items:[
                    'source', '|', 'undo', 'redo', '|', 'preview', 'print', 'template', 'code', 'cut', 'copy', 'paste',
                    'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
                    'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript',
                    'superscript', 'clearhtml', 'quickformat', 'selectall', '|', 'fullscreen', '/',
                    'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold',
                    'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'multiimage', 'table', 'hr', 'emoticons', 'pagebreak',
                    'anchor', 'link', 'unlink', '|', 'about'
            ],
            uploadJson : '${ctx}/backoffice/Kindeditor/uploadFile.do',
            afterCreate : function() {
				var self = this;
				K.ctrl(document, 13, function() {
					self.sync();
					document.forms['inputForm'].submit();
				});
				K.ctrl(self.edit.doc, 13, function() {
					self.sync();
					document.forms['inputForm'].submit();
				});
			}});
        
<span style="white-space:pre">	introduction.readonly();</span>//只读
	});



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值