java 导出表格打包zip文件下载_java导出excel并且压缩成zip上传到oss,并下载,使用字节流去存储,不用文件流保存文件到本地...

ByteArrayOutputStream zipos = new ByteArrayOutputStream(61858764);//设置大小为60M

ZipOutputStream zos = new ZipOutputStream (zipos) ;//创建压缩流,初始化一个输出流缓存区

for(Entryentry : mapData.entrySet()){

String key=entry.getKey();

JSONObject jsonVal=entry.getValue();

OrderMonitorExcelViewSvc orderMonitorExcelView= newOrderMonitorExcelViewSvc(jsonVal);try{

orderMonitorExcelView.outputToFile("orderMonitorExport_"+key);

}catch(Exception e1) {

logger.info(e1);

}

HSSFWorkbook workbook=orderMonitorExcelView.getWorkbook();

ByteArrayOutputStream os= new ByteArrayOutputStream(61858764);//设置大小为60M

try{

workbook.write(os);//创建一个压缩文件里的名称

ZipEntry zipEntry = new ZipEntry("订单监控查询"+key+".xls");

System.out.println(os.size());

zipEntry.set

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用JavaZipOutputStream类将MultipartFile[]压缩为zip文件,然后将zip文件转换为MultipartFile并上传到阿里云oss中。以下是一个示例代码: ```java public MultipartFile zipAndConvertToMultipartFile(MultipartFile[] files) throws IOException { ByteArrayOutputStream bos = new ByteArrayOutputStream(); ZipOutputStream zipOut = new ZipOutputStream(bos); for (MultipartFile file : files) { String fileName = file.getOriginalFilename(); ZipEntry zipEntry = new ZipEntry(fileName); zipOut.putNextEntry(zipEntry); zipOut.write(file.getBytes()); zipOut.closeEntry(); } zipOut.close(); bos.close(); // Convert ByteArrayOutputStream to MultipartFile byte[] bytes = bos.toByteArray(); MultipartFile zipFile = new MockMultipartFile("files.zip", bytes); return zipFile; } public void uploadToOSS(MultipartFile zipFile) { // Initialize OSS client OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // Upload MultipartFile to OSS InputStream inputStream = null; try { inputStream = zipFile.getInputStream(); PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, "files.zip", inputStream); ossClient.putObject(putObjectRequest); } catch (IOException e) { e.printStackTrace(); } finally { try { if (inputStream != null) { inputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } // Close OSS client ossClient.shutdown(); } ``` 需要注意的是,这里使用了MockMultipartFile类来构造MultipartFile对象,因为ZipOutputStream类需要写入文件的名称,而MultipartFile没有提供这个方法。因此,我们需要手动构造一个MultipartFile对象。另外,如果需要上传文件较大,可以考虑使用MultipartFile的TransferTo()方法来实现零拷贝上传
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值