文件上传下载相关处理

1.  byte[] 转换为 MutipartFile

公司网络区别外网和内网,文件由外网上传,保存到数据库,数据库存储的二进制文件。内网通过数据库查询获取该文件信息上传到内部文件服务器上,故用到该转换方式:

byte[] bytes;
InputStream fis = new ByteArrayInputStream(bytes);
String fileName = "xxx.jpg";
DiskFileItemFactory diskFactory = new DiskFileItemFactory();
DiskFileItem fileItem = (DiskFileItem)diskFactory .createItem("file",mediaType.ALL_VALUE,fileName);
OutputStream fos = fileItem.getOutputStream();
IOUtils.copy(fis,fos);
MultipartFile multipartFile = new ConmonsMultipartFile(fileItem);

2.文件打包下载

FileZip.java

public class FileZip{

    private String chName;//文件名
    private File srcFile; //文件

}
public void downloadForZip(HttpServletResponse response){
    resonse.setContentType("application/octet-stream");
    resonse.addHeader("Content-Disposition","attachment;filename*=UTF-8"+URLEncoder.encode(zipNname)+".zip");
    
    try(OutputStream out =response.getOutputStream();ZipOutputStream zos = new ZipOutputSteam(out)){
        for(FileZip fileZip:fileZips){
            byte[] buf = new byte[2*1024]
            File srcFile = fileZip.getSrcFile();
            zos.putNextEntry(new ZipEntry(fileZip.getChName()));
            int len;
            try(FileInputStream in = new FileInputSteam(srcFile)){
                while((len=in.read(buf)) !=-1 ){
                    zos.write(buf,0,len);
                }
                zos.closeEntry();
            }catch(Exception e){
            
            }

        }
    
    }catch(Excption e){
    
    }



}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值