1.上传
importFile 是前台上传文件的name
private void upload(MultipartFile importFile, HttpServletRequest request){ MultipartHttpServletRequest multipartRequest; File targetFile =null; List<List<String>> list=null; try { multipartRequest = (MultipartHttpServletRequest) request; String path = request.getSession().getServletContext().getRealPath("upload"); //文件夹不存在创建文件夹 File logoSaveFile = new File(path); if (!logoSaveFile.exists()) { logoSaveFile.mkdirs(); } MultipartFile multipartFile = multipartRequest.getFile("importFile"); String suffix ="."+ importFile.getOriginalFilename().substring(importFile.getOriginalFilename().lastIndexOf(".")+1); String filenametime =String.valueOf(System.currentTimeMillis()); String flieName = filenametime+suffix; targetFile = new File(path, flieName); if (null != multipartFile && !multipartFile.isEmpty()) { multipartFile.transferTo(targetFile); } } catch (Exception e) { e.printStackTrace(); } finally { //删除文件 if (targetFile.exists()&&targetFile.isFile()){ targetFile.delete(); } } }
2.下载
public void fileDownload(HttpServletRequest request, HttpServletResponse response)throws Exception{ String path = request.getSession().getServletContext().getRealPath("/"); //文件名 String fileName="文件名字.XXX"; //设置响应头和客户端保存文件名 response.setCharacterEncoding("utf-8"); response.setContentType("multipart/form-data"); response.setHeader("Content-Disposition", "attachment;fileName="+java.net.URLEncoder.encode(fileName, "UTF-8")); InputStream inputStream = null; try { //打开本地文件流,webapp下file包 inputStream = new FileInputStream(path+"/file/"+fileName); //激活下载操作 OutputStream os = response.getOutputStream(); //循环写入输出流 byte[] b = new byte[2048]; int length; while ((length = inputStream.read(b)) > 0) { os.write(b, 0, length); } os.close(); } catch (Exception e){ e.printStackTrace(); }finally { if(inputStream!=null) { inputStream.close(); } } }