in code/app/main.go [84:113]
func createHandler(w http.ResponseWriter, r *http.Request) {
r.ParseMultipartForm(10 << 20)
// FormFile returns the first file for the given key `myFile`
// it also returns the FileHeader so we can get the Filename,
// the Header and the size of the file
file, handler, err := r.FormFile("myFile")
if err != nil {
writeErrorMsg(w, fmt.Errorf("error retrieving file: %v", err))
return
}
defer file.Close()
mimemap := NewMimeMap([]string{"image/png", "image/jpeg", "image/gif"})
mimetype := handler.Header.Get("Content-Type")
if !mimemap.Valid(mimetype) {
mimelist := mimemap.List()
writeErrorMsg(w, fmt.Errorf("invalid image type, want one of %s got : %s", mimelist, mimetype))
return
}
if err := cs.Create(handler.Filename, file); err != nil {
writeErrorMsg(w, fmt.Errorf("image couldn't be created: %v", err))
return
}
writeResponse(w, http.StatusCreated, "")
return
}