package utils import ( "fmt" "io" "mime/multipart" "net/http" "os" "strings" ) func LimitFileType(fileName string) bool { var limits = []string{".html", ".htm", ".php", ".xml", ".asp", ".sthm", ".sthml", ".asp", ".jsp", ".js", ".aspx"} for i := 0; i < len(limits); i++ { if strings.HasSuffix(fileName, limits[i]) { return true } } return false } func Tofile(file *multipart.File, path string) error { (*file).Seek(0, 0) defer (*file).Seek(0, 0) out, err := os.Create(path) if err != nil { return err } defer out.Close() _, err = io.Copy(out, *file) return err } func IsFileE(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return false, err } func IsDir(path string) bool { s, err := os.Stat(path) if err != nil { return false } return s.IsDir() } // 判断所给路径是否为文件 func IsFile(path string) bool { is, _ := IsFileE(path) return is } func Mkdir(path string) error { if err := os.MkdirAll(path, os.ModePerm); err != nil { return err } return nil } func Download(url string, filename string) error { // 发送 HTTP 请求获取文件内容 resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() // 创建并打开文件 file, err := os.Create(filename) if err != nil { panic(err) } defer file.Close() // 将 HTTP 响应体内容写入文件 _, err = io.Copy(file, resp.Body) if err != nil { panic(err) } return nil } func Delete(filePath ...string) { for _, v := range filePath { err := os.Remove(v) if err != nil { fmt.Println(err) continue } } return }