Ueditor自定义上传文件通过SpringMVC上传图片到FTP

一、修改Ueditor的config.json的文档图片访问路径前缀改成FTP对外暴露的访问地址

"imageUrlPrefix": "http://192.168.85.98:8280/up/"

二、初始化Ueditor时绑定自定义文件上传方法 


三、自定义SpringMVC后端文件上传方法

@RequestMapping("/ueditor/file")
public class UeditorController {
	
	@RequestMapping("/uploadFile")
	@ResponseBody
	public Map uploadFile(HttpServletRequest request, HttpServletResponse response){
		System.out.println("开始保存文件");
		Map map = new HashMap();
		//将上下文初始化给多部分解析器
		CommonsMultipartResolver resolver=new CommonsMultipartResolver(request.getSession().getServletContext());
		if(resolver.isMultipart(request)){
			MultipartHttpServletRequest  multipartRequest=(MultipartHttpServletRequest) request;
			Iterator iter=multipartRequest.getFileNames();
			try {
				String[] now = DateTimeUtil.getCurDateTime("yyyy-MM-dd").split("-");
				String subPath_1 = "/Ueditor/";
				String subPath_2 =  now[0] + "/" + now[1] + "/" + now[2];
				String ftpFilePath = subPath_1+subPath_2;
				String ftpServer = "192.168.85.98";
				String ftpUser = "xxx";
				String ftpPassword = "xxx";
				String fileSaveName = "";
				String uid = "0";
				while (iter.hasNext()) {
					MultipartFile file =multipartRequest.getFile(iter.next().toString());
					if(file!=null){
						long size = file.getSize();
						System.out.println("size="+size);
						//将上传的文件转换成输入流  
						InputStream inStream = file.getInputStream();
						System.out.println(file.getOriginalFilename());
						String fileName = file.getOriginalFilename();
						fileSaveName = DateTimeUtil.getCurDateTime("yyyyMMddHHmmssSSS")+"_"+uid+fileName.substring(fileName.lastIndexOf("."));
						String path = this.ftpUploadImg(inStream, fileSaveName, ftpFilePath, request, ftpServer, ftpUser, ftpPassword);
						map.put("path", ftpFilePath);
						map.put("filename", fileSaveName);
		                    
						map.put("original", fileName);
						map.put("name", fileSaveName);
						map.put("url", ftpFilePath+"/"+fileSaveName);
						map.put("state", "SUCCESS");
						map.put("type", ".jpg");
						map.put("size", "99697");
					}
				}
			} catch (Exception e) {
				map.put("msg", "fail");
				e.printStackTrace();
			}
			
		}
		return map;
	}
	
	private String ftpUploadImg(InputStream in, String docName, String dir, HttpServletRequest request, 
			String ftpServer, String ftpUser, String ftpPassword) {
	
	FileUpload ftp = null;
	
	try {
		ftp = new FileUpload();
		if (ftp.ftpConnect(ftpServer, ftpUser, ftpPassword)){
		
			ftp.getFtpClient().setRemoteVerificationEnabled(false);
			
			if(!ftp.ftpExistDir(dir)) {
				ftp.ftpMakeDir(dir);
			}
			
			if (ftp.ftpUpload(dir, StringUtil.toISO(docName),in)){
				System.out.println(dir);
			} 
		}
	} catch (Exception e) {
		e.printStackTrace();
		System.out.println(e.getMessage());
		dir = "";
	} finally {
		if(ftp != null) ftp.ftpDisconnect();
	}
	
	if(!dir.equals("")){
		return dir;
	}else{
		return "";
	}
}
	
	

}

核心是需要返回:

map.put("path", ftpFilePath);
map.put("filename", fileSaveName);     
map.put("original", fileName);
map.put("name", fileSaveName);
map.put("url", ftpFilePath+"/"+fileSaveName);
map.put("state", "SUCCESS");
map.put("type", ".jpg");
map.put("size", "99697");

四、演示效果 

Ueditor自定义上传文件通过SpringMVC上传图片到FTP_第1张图片

Ueditor自定义上传文件通过SpringMVC上传图片到FTP_第2张图片

你可能感兴趣的:(前端控件)