package util import ( "io" "os" ) func InitMkDir() { os.MkdirAll("./public/upload/item/img/", os.ModePerm) } func SaveToFile(filename string, data []byte) error { file, err := os.Create(filename) if err != nil { return err } defer file.Close() _, err = file.Write(data) if err != nil { return err } return nil } func ReadFromFile(filename string) ([]byte, error) { file, err := os.Open(filename) if err != nil { return nil, err } defer file.Close() return io.ReadAll(file) } func DeleteFile(filename string) error { return os.Remove(filename) } // 判断文件是否为图片 func FileIsImage(filename string) bool { // 使用文件头检测文件类型 file, err := os.Open(filename) if err != nil { return false } defer file.Close() // 读取文件前 512 个字节 head := make([]byte, 512) _, err = file.Read(head) if err != nil { return false } // 判断文件类型 if head[0] == 0xFF && head[1] == 0xD8 { return true } if head[0] == 0x89 && head[1] == 0x50 && head[2] == 0x4E && head[3] == 0x47 { return true } if head[0] == 0x47 && head[1] == 0x49 && head[2] == 0x46 && head[3] == 0x38 { return true } if head[0] == 0x42 && head[1] == 0x4D { return true } return false }