working on the upload from
This commit is contained in:
89
main.go
89
main.go
@@ -6,13 +6,14 @@ import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
_ "modernc.org/sqlite" // Importing SQLite driver for database interaction.
|
||||
_ "modernc.org/sqlite" // Importing SQLite driver for database interaction.
|
||||
)
|
||||
|
||||
// readHtml function reads an HTML file and applies a CSS template to it before sending it to the client.
|
||||
@@ -213,6 +214,54 @@ func fullSearchPackagesDB(sqldb *sql.DB) []packages {
|
||||
}
|
||||
return pkgs
|
||||
}
|
||||
func uploadFileForServer(sqldb *sql.DB, lang string) http.Handler{
|
||||
return http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
|
||||
pageDataFromDatabase := elements{
|
||||
Title: getMsgFromDB(sqldb, "title", lang),
|
||||
Header: getMsgFromDB(sqldb, "header", lang),
|
||||
Help: getMsgFromDB(sqldb, "help", lang),
|
||||
Packagename: getMsgFromDB(sqldb, "packagename", lang),
|
||||
Packageversion: getMsgFromDB(sqldb, "packageversion", lang),
|
||||
Allow: getMsgFromDB(sqldb, "allow", lang),
|
||||
Warning: getMsgFromDB(sqldb, "warning", lang),
|
||||
Explain: getMsgFromDB(sqldb, "explain", lang),
|
||||
}
|
||||
data := struct {
|
||||
BodyClass string
|
||||
ElementsData elements
|
||||
Lang string
|
||||
}{
|
||||
ElementsData: pageDataFromDatabase,
|
||||
BodyClass: "",
|
||||
Lang: lang,
|
||||
|
||||
}
|
||||
templates, err := template.ParseFiles("html/master.html", "html/uploadfile.html")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
err = templates.ExecuteTemplate(res, "master", data)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
// upload(res, req)
|
||||
res.WriteHeader(http.StatusOK)
|
||||
})
|
||||
}
|
||||
func upload() http.Handler {
|
||||
return http.HandlerFunc(func(res http.ResponseWriter, req *http.Request){
|
||||
file, header, _ := req.FormFile("myFile")
|
||||
req.ParseMultipartForm(10000000<<20)
|
||||
defer file.Close()
|
||||
filename := header.Filename
|
||||
tempFile, _ :=os.CreateTemp("Data",header.Filename)
|
||||
defer tempFile.Close()
|
||||
fileBytes,_:=io.ReadAll(file)
|
||||
tempFile.Write(fileBytes)
|
||||
fn,_:=os.OpenFile("Data/"+filename, os.O_CREATE, 0666)
|
||||
fn.Write(fileBytes)
|
||||
fn.Close()
|
||||
})}
|
||||
|
||||
// index creates an HTTP handler that serves the main page with data from the database.
|
||||
// sqldb: The database connection object.
|
||||
@@ -235,23 +284,25 @@ func index(sqldb *sql.DB, lang string) http.Handler {
|
||||
ElementsData elements
|
||||
PackagesData []packages
|
||||
Lang string
|
||||
}{
|
||||
ElementsData: pageDataFromDatabase,
|
||||
BodyClass: "",
|
||||
PackagesData: queryPacks(sqldb, &pageDataFromDatabase),
|
||||
Lang: lang,
|
||||
}
|
||||
templates, err := template.ParseFiles("html/master.html", "html/main.html")
|
||||
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
err = templates.ExecuteTemplate(res, "master", data)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
res.WriteHeader(http.StatusOK)
|
||||
})
|
||||
}{
|
||||
ElementsData: pageDataFromDatabase,
|
||||
BodyClass: "",
|
||||
PackagesData: queryPacks(sqldb, &pageDataFromDatabase),
|
||||
Lang: lang,
|
||||
}
|
||||
templates, err := template.ParseFiles("html/master.html", "html/main.html")
|
||||
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
err = templates.ExecuteTemplate(res, "master", data)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
|
||||
res.WriteHeader(http.StatusOK)
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
@@ -276,6 +327,8 @@ func main() {
|
||||
mux.Handle("/", index(db, "heb"))
|
||||
mux.Handle("/en", index(db, "eng"))
|
||||
mux.Handle("/stats", stats(db,"eng"))
|
||||
mux.Handle("/up", uploadFileForServer(db,"eng"))
|
||||
mux.Handle("/upload",upload())
|
||||
addr := fmt.Sprintf(":%s", "12312")
|
||||
server := http.Server{
|
||||
Addr: addr,
|
||||
|
Reference in New Issue
Block a user