diff --git a/Web/list.html b/Web/list.html new file mode 100644 index 0000000..803cff2 --- /dev/null +++ b/Web/list.html @@ -0,0 +1,99 @@ + + + + + + + 图片展示页 + + + + + + + diff --git a/database/db.go b/database/db.go index 6e52890..e26838f 100644 --- a/database/db.go +++ b/database/db.go @@ -83,4 +83,34 @@ func GetFileName(linkID string) string { return "" } return md5+ext +} + +func QueryId() ([]string, error) { + var result []string + + db, err := sql.Open("sqlite3", "./data/database.db") + if err != nil { + log.Fatal(err) + } + defer db.Close() + + rows, err := db.Query("SELECT link FROM mytable") + if err != nil { + return nil, err + } + defer rows.Close() + + for rows.Next() { + var name string + if err := rows.Scan(&name); err != nil { + return nil, err + } + result = append(result, name) + } + + if err := rows.Err(); err != nil { + return nil, err + } + + return result, nil } \ No newline at end of file diff --git a/main.go b/main.go index e977b50..ce60cd7 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "Pixel/database" "crypto/md5" + "encoding/json" "fmt" "html/template" "image" @@ -63,9 +64,11 @@ func init() { func main() { http.HandleFunc("/info", showimg) + http.HandleFunc("/info/list", showlist) http.HandleFunc("/upload", upload) http.HandleFunc("/img/",downloadHandler)//设置访问的路由 http.HandleFunc("/img/mini",displayThumbnailHandler) + http.HandleFunc("/idlist",arrayHandler) fmt.Println("Web服务器已启动") err := http.ListenAndServe(":9090", nil) //设置监听的端口 if err != nil { @@ -78,6 +81,11 @@ func showimg(w http.ResponseWriter, r *http.Request) { t.Execute(w, "Hello") } +func showlist(w http.ResponseWriter, r *http.Request) { + t, _ := template.ParseFiles("Web/list.html") + t.Execute(w, "Hello") +} + // 处理/upload 逻辑 func upload(w http.ResponseWriter, r *http.Request) { @@ -230,3 +238,24 @@ func displayThumbnailHandler(w http.ResponseWriter, r *http.Request) { return } } + +func arrayHandler(w http.ResponseWriter, r *http.Request) { + // 获取数组数据 + data, err := database.QueryId() + if err != nil { + http.Error(w, "数组数据获取失败", http.StatusInternalServerError) + return + } + // 将数组数据转换为 JSON 格式 + responseData, err := json.Marshal(data) + if err != nil { + http.Error(w, "无法处理数组数据", http.StatusInternalServerError) + return + } + + // 设置响应头,指定内容类型为 JSON + w.Header().Set("Content-Type", "application/json") + + // 将 JSON 数据写入响应体 + w.Write(responseData) +}