1
0
mirror of https://github.com/labstack/echo.git synced 2025-03-21 21:27:04 +02:00

Engine#Multipart,#FormFile. Closes .

Signed-off-by: Vishal Rana <vr@labstack.com>
This commit is contained in:
Vishal Rana 2016-03-12 15:06:52 -08:00
parent ac25928fd0
commit 7942e4a77b
6 changed files with 51 additions and 12 deletions

@ -189,7 +189,7 @@ func (c *context) Render(code int, name string, data interface{}) (err error) {
}
c.response.Header().Set(ContentType, TextHTMLCharsetUTF8)
c.response.WriteHeader(code)
c.response.Write(buf.Bytes())
_, err = c.response.Write(buf.Bytes())
return
}
@ -197,7 +197,7 @@ func (c *context) Render(code int, name string, data interface{}) (err error) {
func (c *context) HTML(code int, html string) (err error) {
c.response.Header().Set(ContentType, TextHTMLCharsetUTF8)
c.response.WriteHeader(code)
c.response.Write([]byte(html))
_, err = c.response.Write([]byte(html))
return
}
@ -205,7 +205,7 @@ func (c *context) HTML(code int, html string) (err error) {
func (c *context) String(code int, s string) (err error) {
c.response.Header().Set(ContentType, TextPlainCharsetUTF8)
c.response.WriteHeader(code)
c.response.Write([]byte(s))
_, err = c.response.Write([]byte(s))
return
}
@ -225,7 +225,7 @@ func (c *context) JSON(code int, i interface{}) (err error) {
func (c *context) JSONBlob(code int, b []byte) (err error) {
c.response.Header().Set(ContentType, ApplicationJSONCharsetUTF8)
c.response.WriteHeader(code)
c.response.Write(b)
_, err = c.response.Write(b)
return
}
@ -238,9 +238,13 @@ func (c *context) JSONP(code int, callback string, i interface{}) (err error) {
}
c.response.Header().Set(ContentType, ApplicationJavaScriptCharsetUTF8)
c.response.WriteHeader(code)
c.response.Write([]byte(callback + "("))
c.response.Write(b)
c.response.Write([]byte(");"))
if _, err = c.response.Write([]byte(callback + "(")); err != nil {
return
}
if _, err = c.response.Write(b); err != nil {
return
}
_, err = c.response.Write([]byte(");"))
return
}
@ -260,8 +264,10 @@ func (c *context) XML(code int, i interface{}) (err error) {
func (c *context) XMLBlob(code int, b []byte) (err error) {
c.response.Header().Set(ContentType, ApplicationXMLCharsetUTF8)
c.response.WriteHeader(code)
c.response.Write([]byte(xml.Header))
c.response.Write(b)
if _, err = c.response.Write([]byte(xml.Header)); err != nil {
return
}
_, err = c.response.Write(b)
return
}

@ -201,7 +201,7 @@ func New() (e *Echo) {
// Logger
e.logger = log.New("echo")
e.logger.SetLevel(log.ERROR)
e.logger.SetLevel(log.FATAL)
return
}
@ -253,7 +253,7 @@ func (e *Echo) DefaultHTTPErrorHandler(err error, c Context) {
if !c.Response().Committed() {
c.String(code, msg)
}
e.logger.Error(err)
e.logger.Debug(err)
}
// SetHTTPErrorHandler registers a custom Echo.HTTPErrorHandler.

@ -2,6 +2,7 @@ package engine
import (
"io"
"mime/multipart"
"time"
"github.com/labstack/gommon/log"
@ -30,6 +31,8 @@ type (
Method() string
Body() io.ReadCloser
FormValue(string) string
FormFile(string) (*multipart.FileHeader, error)
MultipartForm() (*multipart.Form, error)
}
// Response defines an interface for HTTP response.

@ -6,6 +6,7 @@ import (
"bytes"
"io"
"io/ioutil"
"mime/multipart"
)
import (
@ -66,7 +67,15 @@ func (r *Request) Body() io.ReadCloser {
}
func (r *Request) FormValue(name string) string {
return ""
return string(r.RequestCtx.FormValue(name))
}
func (r *Request) FormFile(name string) (*multipart.FileHeader, error) {
return r.RequestCtx.FormFile(name)
}
func (r *Request) MultipartForm() (*multipart.Form, error) {
return r.RequestCtx.MultipartForm()
}
func (r *Request) reset(c *fasthttp.RequestCtx, h engine.Header, u engine.URL) {

@ -2,6 +2,7 @@ package standard
import (
"io"
"mime/multipart"
"net/http"
"github.com/labstack/echo/engine"
@ -78,6 +79,15 @@ func (r *Request) FormValue(name string) string {
return r.Request.FormValue(name)
}
func (r *Request) FormFile(name string) (*multipart.FileHeader, error) {
_, fh, err := r.Request.FormFile(name)
return fh, err
}
func (r *Request) MultipartForm() (*multipart.Form, error) {
return r.Request.MultipartForm, nil
}
func (r *Request) reset(req *http.Request, h engine.Header, u engine.URL) {
r.Request = req
r.header = h

@ -2,6 +2,7 @@ package test
import (
"io"
"mime/multipart"
"net/http"
"github.com/labstack/echo/engine"
@ -79,6 +80,16 @@ func (r *Request) FormValue(name string) string {
return r.request.FormValue(name)
}
func (r *Request) FormFile(name string) (*multipart.FileHeader, error) {
_, fh, err := r.request.FormFile(name)
return fh, err
}
func (r *Request) MultipartForm() (*multipart.Form, error) {
m := r.request.MultipartForm
return m, nil
}
func (r *Request) Object() interface{} {
return r.request
}