@Controller
@RequestMapping("publicutil")public classPublicUtilController {
@RequestMapping(value= "uploadImage", method =RequestMethod.POST)private voiduploadImage(HttpServletRequest request, HttpServletResponse response, @RequestParam MultipartFile[] upload) {
response.setCharacterEncoding("UTF-8");
PrintWriter out= null;try{
out=response.getWriter();
}catch(IOException e1) {//logger.error("response.getWriter()异常=" + e1);
e1.printStackTrace();
}
String callback= request.getParameter("CKEditorFuncNum");//获得response,request
Map m = new HashMap();//判断客户端标记的enctype属性是否是“multipart/form-data"。
if (!ServletFileUpload.isMultipartContent(request)) {
m.put("error", 1);
m.put("message", "请选择文件!");//return m;//logger.info("请选择文件!");
}//上传的图片文件名
String originalFileName = null;//上传图片的文件扩展名
String fileExtensionName = null;for(MultipartFile file : upload) {//文件大于10M
if (file.getSize() > 10 * 1024 * 1024) {
out.println("
out.println("window.parent.CKEDITOR.tools.callFunction(" +callback+ ",''," + "'文件大小不得大于10M');");
out.println("");
}//文件小于10M
originalFileName =file.getOriginalFilename();//logger.info("上传的图片文件名=" + originalFileName);
fileExtensionName =originalFileName.substring(
originalFileName.lastIndexOf("."), originalFileName.length()).toLowerCase();//logger.info("图片文件扩展名=" + fileExtensionName);//文件支持的扩展名
String[] imageExtensionNameArray =WebsiteConstant.IMAGE_EXTENSION_NAME_ARRAY;
String allImageExtensionName= "";//默认不包含上传图片文件扩展名
boolean isContain = false;for (int i = 0; i < imageExtensionNameArray.length; i++) {if(fileExtensionName.equals(imageExtensionNameArray[i])) {
isContain= true;
}if (i == 0) {
allImageExtensionName+=imageExtensionNameArray[i];
}else{
allImageExtensionName+= " , " +imageExtensionNameArray[i];
}
}
String newFileName= UUID.randomUUID().toString() +fileExtensionName;
String uploadPath=WebsiteConstant.PIC_APP_FILE_SYSTEM_CKEDITOR_LOCATION;if(isContain) {//包含
File pathFile = newFile(uploadPath);if (!pathFile.exists()) {//如果路径不存在,创建
pathFile.mkdirs();
}try{//FileUtils.copyInputStreamToFile(file.getInputStream(), new File(uploadPath, newFileName));
InputStream is =file.getInputStream();
File toFile= newFile(uploadPath, newFileName);
OutputStream os= newFileOutputStream(toFile);byte[] buffer = new byte[1024];int length = 0;while ((length = is.read(buffer)) > 0) {
os.write(buffer,0, length);
}
is.close();
os.close();
}catch(IOException e) {//logger.error("FileUtils.copyInputStreamToFile uploadPath=" + uploadPath + " newFileName =" + newFileName + " exception=" + e);
}
String imageUrl= WebsiteConstant.PIC_APP_SERVER_URL +newFileName;
System.out.println(imageUrl);//返回"图像信息"选项卡并显示图片 ,在对应的文本框中显示图片资源url
out.println("
out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",'" + imageUrl + "',''" + ")");
out.println("");
}else{
out.println("
out.println("window.parent.CKEDITOR.tools.callFunction(" +callback+ ",''," + "'文件格式不正确(必须为" + allImageExtensionName + "文件)');");
out.println("");
}
}
}
}