package com.artfess.rescue.utils;

import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class ZipFileUtils {

    public static ResponseEntity<Resource> downLoadFile(byte[] zipData,String fileName){
      ByteArrayResource resource = new ByteArrayResource(zipData) {
            @Override
            public String getFilename() {
                return fileName;
            }
        };
        try {
        // 6. 设置响应头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        // 旧版本兼容写法（手动构造Content-Disposition）
        String encodedFilename;
            encodedFilename = URLEncoder.encode(resource.getFilename(), "UTF-8")
                    .replaceAll("\\+", "%20");
            headers.add("Content-Disposition",
                    "attachment; filename=\"" + encodedFilename + "\"");
            headers.setContentLength(zipData.length);
            headers.setCacheControl("no-cache, no-store, must-revalidate");
            headers.setPragma("no-cache");
            headers.setExpires(0L);
            return ResponseEntity.ok().headers(headers).body(resource);
        } catch (UnsupportedEncodingException ex) {
            ex.printStackTrace();
        }
        return ResponseEntity.notFound().build();
    }
}
