arnaucube
arnaucube/goImgServerPublic Self-hosted repository
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}