CommonsMultipartFile 转为 File 类型
1、我们可以查看CommonsMultipartFile的源码发现有这样一个方法
@Override public InputStream getInputStream() throws IOException { if (!isAvailable()) { throw new IllegalStateException("File has been moved - cannot be read again"); } InputStream inputStream = this.fileItem.getInputStream(); return (inputStream != null ? inputStream : StreamUtils.emptyInput()); }
2、我们创建CommonsMultipartFile 对象
CommonsMultipartFile shopImg = null; //注意啊,这里你要传的CommonsMultipartFile 参数自己通过commfile去接收就行
3、调用转化方法
inputStreamToFile(commfile.getInputStream(), file); //getInputStream是CommonsMultipartFile的方法(文件转化)
4、我们创建转化方法
private static void inputStreamToFile(InputStream ins,File file) { FileOutputStream os = null; try { os = new FileOutputStream(file); int bytesRead = 0; byte[] buffer = new byte[1024]; while ((bytesRead = ins.read(buffer)) != -1) { os.write(buffer, 0, bytesRead); } } catch (Exception e) { throw new RuntimeException("调用inputStreamToFile异常" +e.getMessage()); }finally { try { if (os != null) { os.close(); } if (ins != null) { ins.close(); } } catch (Exception e) { throw new RuntimeException("调用inputStreamToFile异常" +e.getMessage()); } } }