最近在项目中遇到一个问题:需要将上传的文件生成输出流,然后将输出流转换为输入流上传到oss。
-------------------------------------------导出代码实现----------------------------------------------------------
ByteArrayOutputStream baos = null; try { // 查询导出 字段 List<User> list = new ArrayList<>(); User user=new User(); user.setId(1); user.setName("张三"); user.setAge("12"); User user1=new User(); user1.setId(2); user1.setName("李四"); user1.setAge("22"); baos = new ByteArrayOutputStream(); // 自己本地 excel导出 将文件写入到baos 输出流中 ExcelUtil.exportExcel(list, "导出信息", ProductDeviceVo.class, baos); //自己本地 阿里云 OssClient storage = OssFactory.instance(); // new ByteArrayInputStream(baos.toByteArray()) 将输出流转换为输入流 UploadResult uploadResult = storage.uploadSuffix(new ByteArrayInputStream(baos.toByteArray()), ".xlsx", "application/vnd.ms-excel"); if (null != uploadResult) { System.out.println(uploadResult); } } catch (Exception e) { e.printStackTrace(); } finally { try { //关闭流 if (null != baos) { baos.close(); } } catch (Exception o) { o.printStackTrace(); } }
--------------------------------------------实体类---------------------------------------------------------
public class User{
private String id;
private String name;
private String age;
}