serve image on get works
arnaucode idoctnef@openmailbox.org
Tue, 20 Jun 2017 12:44:03 +0200
1 files changed,
36 insertions(+),
1 deletions(-)
jump to
M
handlers.go
→
handlers.go
@@ -2,8 +2,13 @@ package main
import ( "fmt" + "image" + "image/jpeg" + "image/png" "io/ioutil" "net/http" + "os" + "strings" "github.com/gorilla/mux" )@@ -15,7 +20,36 @@
func ImageShow(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) imageName := vars["imageName"] - fmt.Fprintln(w, "Image show:", imageName) + //fmt.Fprintln(w, "Image show:", imageName) + var imageExtension = strings.Split(imageName, ".")[1] + + file, err := os.Open(imageName) + if err != nil { + //log.Fatal(err) + //fmt.Fprintln(w, "la imatge no existeix al server") + fmt.Fprintln(w, err) + } + + var img image.Image + switch imageExtension { + case "png": + img, err = png.Decode(file) + case "jpg": + img, err = jpeg.Decode(file) + case "jpeg": + img, err = jpeg.Decode(file) + default: + img = nil + } + + if err != nil { + //log.Fatal(err) + fmt.Fprintln(w, "la imatge no existeix al server") + } else { + file.Close() + + jpeg.Encode(w, img, nil) // Write to the ResponseWriter + } } func NewImage(w http.ResponseWriter, r *http.Request) {@@ -32,4 +66,5 @@ if err != nil {
fmt.Println(err) } + fmt.Fprintln(w, "url:", handler.Filename) }