上传文件同用版
public void upload2(HttpServletRequest request , HttpServletResponse response){ //创建一个通用的多部分解析器 CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); //判断 request 是否有文件上传,即多部分请求(即检查form中是否有enctype="multipart/form-data") if(multipartResolver.isMultipart(request)){ //转换成多部分request MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; //取得request中的所有input的name Iterator<String> iter = multiRequest.getFileNames(); while(iter.hasNext()){ //取得一个input里面所有的上传文件 List<MultipartFile> list = multiRequest.getFiles(iter.next()); for(MultipartFile file : list){ if(file != null){ //取得当前上传文件的文件名称 String myFileName = file.getOriginalFilename(); //如果名称不为“”,说明该文件存在,否则说明该文件不存在 if(myFileName.trim() != null){ //重命名上传后的文件名 String saveName = UUID.randomUUID().toString() + myFileName.substring(myFileName.lastIndexOf(".")); //定义上传路径 File localFile = new File("C:\\test\\",saveName); try { //保存 file.transferTo(localFile); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } } } } }
文件下载通用版
// 文件路径 String filePath = basePath + fileName; try { File file = new File(filePath); if (file.exists()) { InputStream fis = new BufferedInputStream(new FileInputStream( filePath)); byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); // 清空response response.reset(); // 设置response的Header response.addHeader("Content-Disposition","attachment;filename=" + new String(fileName.getBytes("iso8859-1"),"UTF-8")); response.addHeader("Content-Length", "" + file.length()); OutputStream toClient = new BufferedOutputStream( response.getOutputStream()); response.setContentType("application/octet-stream"); toClient.write(buffer); toClient.flush(); toClient.close(); } else { String errorMsg = "没有找到文件,路径:" + filePath; } } catch (Exception e) { String errorMsg = "文件下载,出现异常:" + e.getMessage(); }