From f20a8ed79bd010e6c198db728f37dae2984ae009 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 17 Aug 2023 10:38:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E6=96=87=E4=BB=B6=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E5=8D=95=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/file/file.go | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/lib/file/file.go b/lib/file/file.go index 7b643817..d502de7d 100644 --- a/lib/file/file.go +++ b/lib/file/file.go @@ -6,6 +6,7 @@ import ( "io" "net" "net/http" + "os" "time" "ems.agt/lib/dborm" @@ -118,3 +119,54 @@ func GetFile(w http.ResponseWriter, r *http.Request) { response := Response{mmlResult} services.ResponseWithJson(w, http.StatusOK, response) } + +// 格式文件大小单位 +func FormatFileSize(fileSize float64) (size string) { + if fileSize < 1024 { + return fmt.Sprintf("%.2fB", fileSize/float64(1)) + } else if fileSize < (1024 * 1024) { + return fmt.Sprintf("%.2fKB", fileSize/float64(1024)) + } else if fileSize < (1024 * 1024 * 1024) { + return fmt.Sprintf("%.2fMB", fileSize/float64(1024*1024)) + } else if fileSize < (1024 * 1024 * 1024 * 1024) { + return fmt.Sprintf("%.2fGB", fileSize/float64(1024*1024*1024)) + } else if fileSize < (1024 * 1024 * 1024 * 1024 * 1024) { + return fmt.Sprintf("%.2fTB", fileSize/float64(1024*1024*1024*1024)) + } else { + return fmt.Sprintf("%.2fEB", fileSize/float64(1024*1024*1024*1024*1024)) + } +} + +func IsSymlink(mode os.FileMode) bool { + return mode&os.ModeSymlink != 0 +} + +const dotCharacter = 46 + +func IsHidden(path string) bool { + return path[0] == dotCharacter +} + +func GetMimeType(path string) string { + file, err := os.Open(path) + if err != nil { + return "" + } + defer file.Close() + + buffer := make([]byte, 512) + _, err = file.Read(buffer) + if err != nil { + return "" + } + mimeType := http.DetectContentType(buffer) + return mimeType +} + +func GetSymlink(path string) string { + linkPath, err := os.Readlink(path) + if err != nil { + return "" + } + return linkPath +}