package main
|
|
|
|
import (
|
|
"fmt"
|
|
"image/jpeg"
|
|
"io/ioutil"
|
|
"net/http"
|
|
"strings"
|
|
|
|
"github.com/gorilla/mux"
|
|
)
|
|
|
|
func Index(w http.ResponseWriter, r *http.Request) {
|
|
fmt.Fprintln(w, "Welcome! To send images, go to /image")
|
|
}
|
|
|
|
func ImageShow(w http.ResponseWriter, r *http.Request) {
|
|
vars := mux.Vars(r)
|
|
imageName := vars["imageName"]
|
|
|
|
file, err := ioutil.ReadFile(config.Folder + "/" + imageName)
|
|
if err != nil {
|
|
fmt.Fprintln(w, err)
|
|
}
|
|
|
|
img, err := dataToImage(file, imageName)
|
|
|
|
if err != nil {
|
|
fmt.Fprintln(w, "la imatge no existeix al server")
|
|
} else {
|
|
jpeg.Encode(w, img, nil) // Write to the ResponseWriter
|
|
}
|
|
}
|
|
|
|
func NewImage(w http.ResponseWriter, r *http.Request) {
|
|
err := ipFilter(r)
|
|
if err != nil {
|
|
fmt.Fprintln(w, err.Error())
|
|
return
|
|
}
|
|
file, handler, err := r.FormFile("file")
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
imageName := strings.Split(handler.Filename, ".")[0]
|
|
fileName := imageName + ".png"
|
|
data, err := ioutil.ReadAll(file)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
|
|
img, err := dataToImage(data, handler.Filename)
|
|
if err != nil {
|
|
fmt.Fprintln(w, "error al processar la imatge")
|
|
}
|
|
img = Resize(img)
|
|
data, err = imageToPNG(img)
|
|
if err != nil {
|
|
fmt.Fprintln(w, "error al processar la imatge")
|
|
}
|
|
err = ioutil.WriteFile(config.Folder+"/"+fileName, data, 0777)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
|
|
fmt.Fprintln(w, config.ServerIP+":"+config.ServerPort+"/images/"+fileName)
|
|
}
|