HTTP Basic implementation: Print file to STDOUT

pull/1/head
ALI Hamza 2019-08-12 17:53:09 +07:00
parent b2b8268532
commit 63a1cad8d4
No known key found for this signature in database
GPG Key ID: 7C608266BF384ADC
1 changed files with 48 additions and 12 deletions

@ -1,9 +1,11 @@
package main
import (
"bytes"
"fmt"
"os"
"text/template"
"github.com/gorilla/mux"
"io/ioutil"
"net/http"
)
const (
@ -14,20 +16,54 @@ const (
)
func main() {
t := template.New("svgConv")
//_ := template.New("svgConv")
percentage := 0.999
fill := percentageToRGB(percentage)
//percentage := 0.999
//fill := percentageToRGB(percentage)
pill := CoveragePill{
fmt.Sprintf("%.1f", toFixed(percentage, 3)*100),
baseColour,
fill,
//_ := CoveragePill{
// fmt.Sprintf("%.1f", toFixed(percentage, 3)*100),
// baseColour,
// fill,
//}
r := mux.NewRouter()
r.HandleFunc("/upload/go", upload)
_ = http.ListenAndServe(":8080", r)
}
func upload(w http.ResponseWriter, r *http.Request) {
if r.Method != "POST" {
return
}
err := r.ParseForm()
if err != nil {
http.Error(w, "Request parameters not parsed", 500)
return
}
t, err := t.Parse(svgTemplate)
err = r.ParseMultipartForm(5 << 20)
if err != nil {
panic(err)
http.Error(w, "Request parameters not parsed", 500)
return
}
form := r.Form
project := form.Get("project")
tag := form.Get("tag")
id := form.Get("id")
file, _, err := r.FormFile("file")
b, _ := ioutil.ReadAll(file)
n := bytes.Index(b, []byte{0})
content := string(b[n])
fmt.Print(content)
if project == "" || tag == "" || id == "" {
http.Error(w, "Request parameters [secret, project, tag, id] not found", 400)
return
}
_ = t.Execute(os.Stdout, pill)
_, _ = fmt.Fprintf(w, "project: '%s'\ntag: '%s'\nid: '%s'\n", project, tag, id)
}