1 Star 0 Fork 0

brucewang/go公共库

Create your Gitee Account
Explore and code with more than 14 million developers,Free private repositories !:)
Sign up
文件
Clone or Download
file.go 2.09 KB
Copy Edit Raw Blame History
brucewang authored 2022-01-05 08:08 +08:00 . 公共库初始化
package utils
import (
"errors"
"io/ioutil"
"log"
"mime/multipart"
"net/http"
"os"
"path"
"strings"
"github.com/shamsher31/goimgext"
)
// GetSize 获取文件大小
func GetSize(f multipart.File) (int, error) {
content, err := ioutil.ReadAll(f)
return len(content), err
}
// GetExt 获取文件后缀
func GetExt(fileName string) string {
return path.Ext(fileName)
}
// CheckExist 检查文件是否存在
func CheckExist(src string) bool {
_, err := os.Stat(src)
return os.IsNotExist(err)
}
// CheckPermission 检查文件权限
func CheckPermission(src string) bool {
_, err := os.Stat(src)
return os.IsPermission(err)
}
// IsNotExistMkDir 检查文件夹是否存在
// 如果不存在则新建文件夹
func IsNotExistMkDir(src string) error {
if exist := !CheckExist(src); exist == false {
if err := MkDir(src); err != nil {
return err
}
}
return nil
}
// MkDir 新建文件夹
func MkDir(src string) error {
err := os.MkdirAll(src, os.ModePerm)
if err != nil {
return err
}
return nil
}
// Open 打开文件
func Open(name string, flag int, perm os.FileMode) (*os.File, error) {
f, err := os.OpenFile(name, flag, perm)
if err != nil {
return nil, err
}
return f, nil
}
// GetImgType 获取Img文件类型
func GetImgType(p string) (string, error) {
file, err := os.Open(p)
if err != nil {
log.Println(err)
os.Exit(1)
}
buff := make([]byte, 512)
_, err = file.Read(buff)
if err != nil {
log.Println(err)
os.Exit(1)
}
filetype := http.DetectContentType(buff)
ext := imgext.Get()
for i := 0; i < len(ext); i++ {
if strings.Contains(ext[i], filetype[6:len(filetype)]) {
return filetype, nil
}
}
return "", errors.New("Invalid image type")
}
// GetType 获取文件类型
func GetType(p string) (string, error) {
file, err := os.Open(p)
if err != nil {
log.Println(err)
os.Exit(1)
}
buff := make([]byte, 512)
_, err = file.Read(buff)
if err != nil {
log.Println(err)
}
filetype := http.DetectContentType(buff)
//ext := GetExt(p)
//var list = strings.Split(filetype, "/")
//filetype = list[0] + "/" + ext
return filetype, nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/brucewangzhihua1/go-public-library.git
git@gitee.com:brucewangzhihua1/go-public-library.git
brucewangzhihua1
go-public-library
go公共库
v1.0.1

Search