- 通过request请求获取解析
<form> <div class="form-group col-lg-2" th:if="${session.permissions.hotelAdd}"> <input id="fileUpload" accept="application/vnd.sealed-xls" type="file"> </div> <form>
//初始化文件上传 $('#fileUpload').fileinput({ uploadUrl: '/project/getFlieListHotExecl', dropZoneEnabled: false, allowedFileTypes: ['xls', 'xlsx'], maxFileCount: 1, maxFileSize:10240, language: 'zh' }).on("filebatchselected", function (event, files) { $(this).fileinput("upload"); }).on("fileuploaded", function (event, data) { $('#blogTable').bootstrapTable('refresh'); });
@RequestMapping("/getFlieListHotExecl") @ResponseBody public void fileUpload(HttpServletRequest request) { MultipartFile file = null; // 创建一个通用的多部分解析器 CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); // 判断 request 是否有文件上传,即多部分请求 if (multipartResolver.isMultipart(request)) { // 转换成多部分request MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; // 取得request中的所有文件名 Iterator<String> iter = multiRequest.getFileNames(); while (iter.hasNext()) { file = multiRequest.getFile(iter.next()); } } //解析 if (null!=file){ // 创建输入流,读取流 try { InputStream is = file.getInputStream(); //处理流 } catch (IOException e) { e.printStackTrace(); } } }
- 单文件上传
<form action="fileUpload" method="post" enctype="multipart/form-data"> <p>选择文件: <input type="file" name="fileName"/></p> <p><input type="submit" value="提交"/></p> </form>
@RequestMapping("/fileUpload") @ResponseBody public void fileUpload(@RequestParam("fileName") MultipartFile file){ //解析 if (null!=file){ // 创建输入流,读取流 try { InputStream is = file.getInputStream(); //处理流 } catch (IOException e) { e.printStackTrace(); } } }
- 上传多文件
<form action="multifileUpload" method="post" enctype="multipart/form-data" > <p>选择文件1: <input type="file" name="fileName"/></p> <p>选择文件2: <input type="file" name="fileName"/></p> <p>选择文件3: <input type="file" name="fileName"/></p> <p><input type="submit" value="提交"/></p> </form>
- 多文件
@RequestMapping(value = "/batch/upload", method = RequestMethod.POST) @ResponseBody public void handleFileUpload(HttpServletRequest request) { MultipartHttpServletRequest params=((MultipartHttpServletRequest) request); List<MultipartFile> files = ((MultipartHttpServletRequest) request) .getFiles("file"); String name=params.getParameter("name"); System.out.println("name:"+name); String id=params.getParameter("id"); System.out.println("id:"+id); MultipartFile file = null; BufferedOutputStream stream = null; for (int i = 0; i < files.size(); ++i) { file = files.get(i); //解析 } }
public Boolean upload(MultipartFile[] files) throws Exception { if (null != files && files.length > 0) { //用于判断文件个数 final int length = files.length; for (MultipartFile file : files) { final String originalFilename = file.getOriginalFilename(); assert originalFilename != null; //后缀,用于判断文件类型 String suffix = originalFilename.substring(originalFilename.lastIndexOf(".") + 1); //获取输文件入流 final InputStream inputStream = file.getInputStream(); //添加逻辑操作... } } return true; }
- 文件夹上传
public Boolean uploadByDirectory(String path) throws Exception { File file = new File(path); File[] tempList = file.listFiles(); //遍历文件夹内文件 for (int i = 0; i < Objects.requireNonNull(tempList).length; i++) { File excel = tempList[i]; FileInputStream fileInputStream = null; final String fileName = excel.getName(); //判断后缀是什么类型 String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);//创建文件输入流 fileInputStream = new FileInputStream(excel); //执行操作.... } return true; }