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