package com.red.circle.external.utils;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;

@Slf4j
public class FileUtils {
    /**
     * @param file     文件
     * @param fileName 新的随机文件名
     */
    public static void upload(MultipartFile file, String destPath, String fileName) {
        File dest = new File(destPath + File.separator + fileName);
        //判断文件父目录是否存在
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        try {
            //保存文件
            file.transferTo(dest);
        } catch (Exception e) {
            log.error("Save file exception. {}", e.getMessage());
        }

    }

    /**
     * 输出文件的后缀名
     * @param fileName
     * @return
     */
    public static String getSuffix(String fileName) {
//        fileName.substring(fileName.lastIndexOf("."))
//        是C#中的字符串操作，它的作用是从文件名字符串中截取最后一个点（.）及其后面的所有字符。这个操作可以用来获取文件的扩展名。
        return fileName.substring(fileName.lastIndexOf("."));
    }

    /**
     * @param name
     * @Description 设置响应头部信息
     * @Throws
     * @Return java.lang.String
     * @Date 2023-08-02 13:39:15
     * @Author lgm
     */
    public static Boolean fileContentType(String name) {
        Boolean result;
        String fileType = name.toLowerCase();
        if (fileType.endsWith(".png")) {
            result = Boolean.TRUE;
        } else if (fileType.endsWith(".gif")) {
            result = Boolean.TRUE;
        } else if (fileType.endsWith(".jpg") || fileType.endsWith(".jpeg")) {
            result = Boolean.TRUE;
        } else{
            result = Boolean.FALSE;
        }
        return result;
    }
}
