代码拉取完成,页面将自动刷新
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)
defer file.Close()
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
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。