63 lines
1.3 KiB
Go
63 lines
1.3 KiB
Go
package http
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"mime/multipart"
|
|
"net/http"
|
|
"path"
|
|
"strings"
|
|
"time"
|
|
|
|
"go-common/library/ecode"
|
|
bm "go-common/library/net/http/blademaster"
|
|
)
|
|
|
|
// upload
|
|
func upload(c *bm.Context) {
|
|
var (
|
|
fileTpye string
|
|
file multipart.File
|
|
header *multipart.FileHeader
|
|
fileName string
|
|
body []byte
|
|
location string
|
|
err error
|
|
)
|
|
// res := c.Result()
|
|
if file, header, err = c.Request.FormFile("file"); err != nil {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
defer file.Close()
|
|
fileName = header.Filename
|
|
fileTpye = strings.TrimPrefix(path.Ext(fileName), ".")
|
|
if body, err = ioutil.ReadAll(file); err != nil {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
location, err = feedbackSvr.Upload(c, "", fileTpye, time.Now(), body)
|
|
c.JSON(struct {
|
|
URL string `json:"url"`
|
|
}{location}, err)
|
|
}
|
|
|
|
// uploadFile
|
|
func uploadFile(c *bm.Context) {
|
|
var (
|
|
req = c.Request
|
|
fileTpye, location string
|
|
body []byte
|
|
err error
|
|
)
|
|
if body, err = ioutil.ReadAll(req.Body); err != nil {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
req.Body.Close()
|
|
fileTpye = http.DetectContentType(body)
|
|
location, err = feedbackSvr.Upload(c, "", fileTpye, time.Now(), body)
|
|
c.JSON(struct {
|
|
URL string `json:"url"`
|
|
}{location}, err)
|
|
}
|