Files
public/file/file.go
xxjwxc 0ac9cdd0af new
2020-05-25 00:35:02 +08:00

52 lines
1.1 KiB
Go

package file
import (
"fmt"
"io"
"net/http"
"os"
"time"
"github.com/xxjwxc/public/tools"
)
//上传单个文件
func UploadFile(r *http.Request, w http.ResponseWriter, field, file_type string) (result bool, file_name string) {
//接受post请求
if r.Method == "POST" {
r.ParseMultipartForm(32 << 20)
file_name = GetFileName(file_type)
//开始存储文件
{
file, _, err := r.FormFile(field) //文件name
defer file.Close()
if err != nil {
result = false
}
if !tools.CheckFileIsExist(tools.GetModelPath() + "/file/" + field + "/") {
err1 := os.Mkdir(tools.GetModelPath()+"/file/"+field+"/", os.ModePerm) //创建文件夹
if err1 != nil {
result = false
}
}
f, err := os.OpenFile(tools.GetModelPath()+"/file/"+field+"/"+file_name, os.O_WRONLY|os.O_CREATE, 0666)
defer f.Close()
if err != nil {
result = false
}
io.Copy(f, file)
}
} else {
result = false
}
return
}
func GetFileName(exp string) string {
return fmt.Sprintf("%d%s.%s", tools.GetUtcTime(time.Now()), tools.GetRandomString(4), exp)
}