Files
zsp-project/backend/pkg/utils/file.go
2026-06-03 20:59:39 +08:00

46 lines
892 B
Go
Executable File

package utils
import (
"fmt"
"io"
"mime/multipart"
"os"
)
func FormatFileSize(i int64) string {
const (
KB = 1024
MB = KB * 1024
GB = MB * 1024
TB = GB * 1024
)
switch {
case i >= TB:
return fmt.Sprintf("%.2fTB", float64(i)/float64(TB))
case i >= GB:
return fmt.Sprintf("%.2fGB", float64(i)/float64(GB))
case i >= MB:
return fmt.Sprintf("%.2fMB", float64(i)/float64(MB))
case i >= KB:
return fmt.Sprintf("%.2fKB", float64(i)/float64(KB))
default:
return fmt.Sprintf("%dB", i)
}
}
// SaveUploadedFile 保存 multipart 上传的文件到指定路径
func SaveUploadedFile(fh *multipart.FileHeader, dst string) error {
src, err := fh.Open()
if err != nil {
return err
}
defer src.Close()
out, err := os.Create(dst)
if err != nil {
return err
}
defer out.Close()
_, err = io.Copy(out, src)
return err
}