goImgServer/handlers.go
handlers.goRaw
1package main
2
3import (
4 "fmt"
5 "image/jpeg"
6 "io/ioutil"
7 "net/http"
8 "strings"
9
10 "github.com/gorilla/mux"
11)
12
13func Index(w http.ResponseWriter, r *http.Request) {
14 fmt.Fprintln(w, "Welcome! To send images, go to /image")
15}
16
17func ImageShow(w http.ResponseWriter, r *http.Request) {
18 vars := mux.Vars(r)
19 imageName := vars["imageName"]
20
21 file, err := ioutil.ReadFile(imageName)
22 if err != nil {
23 fmt.Fprintln(w, err)
24 }
25
26 img, err := dataToImage(file, imageName)
27
28 if err != nil {
29 fmt.Fprintln(w, "la imatge no existeix al server")
30 } else {
31 jpeg.Encode(w, img, nil) // Write to the ResponseWriter
32 }
33}
34
35func NewImage(w http.ResponseWriter, r *http.Request) {
36 file, handler, err := r.FormFile("file")
37 if err != nil {
38 fmt.Println(err)
39 }
40 imageName := strings.Split(handler.Filename, ".")[0]
41 fileName := imageName + ".png"
42 data, err := ioutil.ReadAll(file)
43 if err != nil {
44 fmt.Println(err)
45 }
46
47 img, err := dataToImage(data, handler.Filename)
48 if err != nil {
49 fmt.Fprintln(w, "error al processar la imatge")
50 }
51 img = Resize(img)
52 data, err = imageToPNG(img)
53 if err != nil {
54 fmt.Fprintln(w, "error al processar la imatge")
55 }
56 err = ioutil.WriteFile(fileName, data, 0777)
57 if err != nil {
58 fmt.Println(err)
59 }
60
61 fmt.Fprintln(w, "url:", fileName)
62}