https://blog.csdn.net/m0_37527542/article/details/74542587 这里面写的很好,都好用,不赘述了
补充几点自己遇到的坑
1、用swagger 的时候,自动回判断 enctype="multipart/form-data"
会自动加入到请求头,不用理会
2、jdk1.7 和 poi 7 版本匹配,jdk 8 和 poi 14 (这个没测)
3、低版本 poi 只支持 excel 2003 如果你想批量导入excel2007 2010 要同时升级jdk和poi版本
4、建议在本地缓存一个文件,而不是直接用流来操作,而且缓存文件不要用请求名来定义路径,每次请求请求名ID均不同,会多出很多垃圾文件
//方法1失败 编译就报错了,第三行 // MultipartFile file = Mfile; // CommonsMultipartFile cf= (CommonsMultipartFile)file; // DiskFileItem fi = (DiskFileItem)cf.getFileItem(); // File f = fi.getStoreLocation(); //方法2错在第一步的转换 CommonsMultipartFile cf = (CommonsMultipartFile) Mfile; File file = null; cf.transferTo(file); //第三种方式,注入, 是注入错了,还是不好使呢? // File file3 = (File) Mfile; //第四种方式 转换字节流,感觉效率低,还容易出错 //有问题,poi直接爆出错误,非异常 // InputStream is2 = Mfile.getInputStream(); // Workbook wb = Workbook.getWorkbook(Mfile.getInputStream()); //第五种方法,字节数组 // byte[] buffer = Mfile.getBytes();