diff --git a/database/db.go b/database/db.go index 0646454..ee3ece2 100644 --- a/database/db.go +++ b/database/db.go @@ -217,3 +217,36 @@ func CheckUserPasswd(username string, password string) bool { return false } } + +func GetFileLinkID(md5in string) string { + db, err := sql.Open("sqlite3", "./data/database.db") + if err != nil { + log.Fatal(err) + } + defer db.Close() + + // SQL语句 + SQL := ` + SELECT * FROM "mytable" WHERE md5 = ? + ` + + row := db.QueryRow(SQL,md5in) + if err != nil { + log.Fatal(err) + } + + // 扫描查询结果 + var md5 string + var linkID string + var ext string + err = row.Scan(&linkID,&md5,&ext) + if err != nil { + if err == sql.ErrNoRows { + return "" + } else { + log.Fatal(err) + } + return "" + } + return linkID +} \ No newline at end of file diff --git a/main.go b/main.go index 829fce0..f6db6c9 100644 --- a/main.go +++ b/main.go @@ -130,6 +130,12 @@ func upload(w http.ResponseWriter, r *http.Request) { } md5sum := fmt.Sprintf("%x", h.Sum(nil)) + oldLinkID := database.GetFileLinkID(md5sum) + if oldLinkID != "" { + w.Write([]byte(oldLinkID)) + return + } + // 获取文件扩展名 fname := handler.Filename ext := path.Ext(fname)