12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package fs
- import (
- "github.com/Tangmz/tangs/log"
- "net/http"
- "time"
- "fmt"
- "os"
- "io"
- "encoding/json"
- )
- type Config struct {
- FilePath string `json:"filePath"`
- Log string `json:"log"`
- }
- var Conf = &Config{}
- func FileUploadHandle(w http.ResponseWriter, r *http.Request) {
- var code int
- var msg string
- defer func() {
- resp := map[string]interface{}{
- "code": code,
- "msg": msg,
- }
- bys, _ := json.Marshal(resp)
- w.Write(bys)
- }()
- file, fileHeader, err := r.FormFile("file")
- if err != nil {
- log.Error("FileUploadHandle received file error ->(%v)", err)
- code = 1
- msg = err.Error()
- return
- }
- defer file.Close()
- originFilename := fileHeader.Filename
- now := time.Now()
- timePoint := fmt.Sprintf("%v%v%v%v%v%v", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
- var filename string = originFilename + "-" + timePoint
- // check file path
- fmt.Println(os.Getwd())
- fp := Conf.FilePath
- _, err = os.Stat(fp)
- if err != nil {
- log.Error("FileUploadHandle check folder path(%v) error ->(%v)", fp, err)
- err = os.MkdirAll(fp, os.ModePerm)
- if err != nil {
- log.Error("FileUploadHandle mkdir folder path(%v) error ->(%v)", fp, err)
- code = 2
- msg = err.Error()
- return
- }
- }
- filename = fp + "/" +filename
- f, err := os.Create(filename)
- if err != nil {
- log.Error("FileUploadHandle create file (%v) error ->(%v)", filename, err)
- code = 3
- msg = err.Error()
- return
- }
- defer f.Close()
- length, err := io.Copy(f, file)
- if err != nil {
- log.Error("FileUploadHandle copy file (%v) error ->(%v)", filename, err)
- code = 4
- msg = err.Error()
- return
- }
- log.Debug("FileUploadHandle copy file (%v) success with length(%v)", filename, length)
- code = 0
- msg = "Ok"
- }
|