mirror of
https://github.com/xxjwxc/public.git
synced 2025-09-26 20:01:19 +08:00
52 lines
1.1 KiB
Go
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)
|
|
}
|