系统中经常会涉及到附件上传,这里采用MultipartFile实现此功能。
1.前端jsp页面
选中文件后会通过uploader="disclosureFileErController.do?saveFiles&table=${table}&id=${id}"进行controller类调取
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@include file="/context/mytags.jsp"%> <!DOCTYPE html> <html> <head> <title>文件列表</title> <t:base type="jquery,easyui,tools"></t:base> </head> <style type="text/css"> </style> <body style="overflow-y: hidden" scroll="no"> <t:formvalid formid="formobj" layout="div" dialog="true" beforeSubmit="upload"> <fieldset class="step"> <div class="form"> <t:upload name="fiels" buttonText="上传文件" uploader="disclosureFileErController.do?saveFiles&table=${table}&id=${id}" extend="" id="file_upload" formData="documentTitle"></t:upload> </div> <div class="form" id="filediv" > </div> </fieldset> </t:formvalid> </body> </html>
2.后端controller类实现文件上传功能
(1)将文件基础信息存储到数据库表中
(2)将文件本身存到Tomcat服务器上
/** * 保存文件 20180224gaojl * * @param document * @return * @throws Exception */ @RequestMapping(params = "saveFiles", method = RequestMethod.POST) @ResponseBody public AjaxJson saveFiles(HttpServletRequest request, HttpServletResponse response) { AjaxJson j = new AjaxJson(); MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Iterator iter = multipartRequest.getFileNames(); String name = ""; String path = null; while (iter.hasNext()) { MultipartFile file = multipartRequest.getFile(iter.next().toString()); name = file.getOriginalFilename(); path = request.getSession().getServletContext().getRealPath("/") + "upload/" + name; // ——文件信息存档——开始 String table = (String) request.getParameter("table"); if ("disclosure_base_er".equals(table)) { DisclosureBaseErEntity fileE = new DisclosureBaseErEntity(); fileE.setFilePath(path); fileE.setFileName(name); Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String datetime = sdf.format(date); fileE.setDate(datetime); String uuid = UUID.randomUUID().toString(); fileE.setFileId(uuid); fileE.setDisclosureFileErId(request.getParameter("id")); // 文件上传成功后,再把数据保存都数据库 try { systemService.save(fileE); } catch (Exception e1) { e1.printStackTrace(); } } else if ("disclosure_tower_er".equals(table)) { DisclosureTowerErEntity fileE = new DisclosureTowerErEntity(); fileE.setFilePath(path); fileE.setFileName(name); String uuid = UUID.randomUUID().toString(); fileE.setFileId(uuid); fileE.setDisclosureFileErId(request.getParameter("id")); // 文件上传成功后,再把数据保存都数据库 try { systemService.save(fileE); } catch (Exception e1) { e1.printStackTrace(); } } else if ("disclosure_string_er".equals(table)) { DisclosureStringErEntity fileE = new DisclosureStringErEntity(); fileE.setFilePath(path); fileE.setFileName(name); String uuid = UUID.randomUUID().toString(); fileE.setFileId(uuid); fileE.setDisclosureFileErId(request.getParameter("id")); // 文件上传成功后,再把数据保存都数据库 try { systemService.save(fileE); } catch (Exception e1) { e1.printStackTrace(); } } // ——文件信息存档——结束 try { file.transferTo(new File(path)); System.out.println("文件path === " + path); } catch (Exception e) { j.setMsg("附件上传失败!"); return j; } } j.setMsg("文件添加成功"); return j; }