| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- package tool
- import (
- "crypto/sha256"
- "database/sql"
- "encoding/hex"
- "io"
- "path/filepath"
- "strings"
- "github.com/dlclark/regexp2"
- )
- func Get_file_max_size(db *sql.DB) int {
- data := "0"
- QueryRow_DB(
- db,
- "select data from other where name = 'upload'",
- []any{ &data },
- )
- file_max_size := Str_to_int(data)
- return file_max_size
- }
- func Get_file_main_dir(db *sql.DB) string {
- data := ""
- QueryRow_DB(
- db,
- "select data from other where name = 'image_where'",
- []any{ &data },
- )
- if data == "" {
- data = filepath.Join("..", "data", "images")
- } else {
- data = filepath.Clean(data)
- }
- return data
- }
- func Get_ext_allow_list(db *sql.DB) map[string]bool {
- rows := Query_DB(db, "select html from html_filter where kind = 'extension'")
- defer rows.Close()
- data_list := map[string]bool{}
- for rows.Next() {
- data := ""
- err := rows.Scan(&data)
- if err != nil {
- panic(err)
- }
- data = strings.ToLower(data)
- data = strings.TrimPrefix(data, ".")
- data_list[data] = true
- }
- return data_list
- }
- func Get_file_name_unallow_check(db *sql.DB, file_name string) bool {
- rows := Query_DB(db, "select html from html_filter where kind = 'file_name'")
- defer rows.Close()
- for rows.Next() {
- data := ""
- err := rows.Scan(&data)
- if err != nil {
- panic(err)
- }
- r, err := regexp2.Compile(data, 0)
- if err != nil {
- continue
- }
- m, err := r.MatchString(file_name)
- if err == nil && m {
- return true
- }
- }
- return false
- }
- func File_name_to_dir(file_name string, file_ext string) string {
- h := sha256.New224()
- io.WriteString(h, file_name)
- hash_hex := hex.EncodeToString(h.Sum(nil))
- return hash_hex + "." + file_ext
- }
|