package com.st.webadmin.bl; import com.st.baseutil.FileHelper; import com.st.baseutil.StringUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.util.FileCopyUtils; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.servlet.http.HttpServletRequest; import java.awt.image.BufferedImage; import java.io.File; import java.util.Map; import java.util.UUID; @Component public class UploadHelper { @Value("${fileserver.physical.location}") public String physicalPath; @Value("${fileserver.httpPreffix}") public String httpPreffix; public String getPhysicalPath(String from, String sub) { String dirPath =physicalPath + from; FileHelper.createDir(dirPath); dirPath = dirPath + "/" + sub + "/"; FileHelper.createDir(dirPath); return dirPath; } public String upload(HttpServletRequest request, String pathPhysical, String url) throws Exception { MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request; Map<String, MultipartFile> fileMap = multipartHttpServletRequest.getFileMap(); /*if (fileMap.size() == 0) throw new Exception("未找到上传的图片");*/ String uuid = UUID.randomUUID().toString().replace("-", ""); String fileName = ""; MultipartFile multipartFile = null; for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { multipartFile = entity.getValue(); fileName = multipartFile.getOriginalFilename(); String suffix = fileName.substring(fileName.lastIndexOf("."), fileName.length()); fileName = uuid + suffix.toLowerCase(); break; } File newFile = new File(pathPhysical + fileName); FileCopyUtils.copy(multipartFile.getBytes(), newFile); BufferedImage sourceImg = javax.imageio.ImageIO.read(newFile); /*int img_width = sourceImg.getWidth(); int img_height = sourceImg.getHeight();*/ /*if ((height + width) != 0 && (img_width != width || img_height != height)) { throw new Exception("上传失败,上传图片大小(width*height):" + img_width + "*" + img_height); }*/ url=url+fileName; return url; } public String getUrl(String from, String sub) { if (!StringUtil.isEmpty(sub)) return httpPreffix + from + "/" + sub + "/"; return httpPreffix + from + "/"; } }
编写一个文件上传类,配置相关路径地址。
fileserver.physical.location=D:/projects/importTemplate/ fileserver.httpPreffix=http://121.196.54.29:8017/
application.properties配置路径
@RequestMapping(value = "import", method = RequestMethod.POST) public String importFile(ModelMap modelMap, HttpServletRequest request, HttpServletResponse response, @RequestParam("ImportExcelFile") MultipartFile upFile) throws IOException { SysUser user = (SysUser) SecurityUtils.getSubject().getPrincipal(); SysImportQueue importQueue = new SysImportQueue(); importQueue.setName("导入客户资料"); importQueue.setStatus(0); //0 处理中 1 成功 2 失败 importQueue.setCreatedId(user.getId()); importQueue.setCreatedOn(new Date()); importQueue.setCreatedBy(user.getUserName()); try { String pathPhysical = uploadHelper.getPhysicalPath("import", "memeber"); String url = uploadHelper.getUrl("import", "memeber"); String uuid = UUID.randomUUID().toString().replace("-", ""); String fileName = upFile.getOriginalFilename(); importQueue.setFileName(fileName); String suffix = fileName.substring(fileName.lastIndexOf("."), fileName.length()); fileName = uuid + suffix.toLowerCase(); File newFile = new File(pathPhysical + fileName); FileCopyUtils.copy(upFile.getBytes(), newFile); url=url+fileName; importQueue.setFileUrl(url); sysImportQueueService.insert(importQueue); } catch (Exception ex) { ex.printStackTrace(); } return "appmember/import"; }
相关Controller方法
<form class="form-inline" action="/appMember/import" id="importForm" name="importForm" method="post" enctype="multipart/form-data"> <div class="form-body"> <div class="form-group"> <label class="control-label">选择需要上传的文件:</label> <input type="text" name="upfile" id="upfile" class="form-control" style=" 500px;"> <input type="button" value="浏览..." onclick="ImportExcelFile.click()" class="btn btn-default"> <input type="file" id="ImportExcelFile" name="ImportExcelFile" style="display:none" onchange="upfile.value=this.value"> <input type="button" class="btn blue-chambray" value="上传" onclick="submit()"/> </div> </div> </form>
就可以了