func UpLoadFile( c *gin.Context) { file, err := c.FormFile("filename") if err != nil { c.String(http.StatusBadRequest, fmt.Sprintf("get form err: %s", err.Error())) return } file.Filename = "copy_" + file.Filename if err := c.SaveUploadedFile(file, file.Filename); err != nil { c.String(http.StatusBadRequest, fmt.Sprintf("upload file err: %s", err.Error())) return } c.String(http.StatusOK, fmt.Sprintf("File %s uploaded success", file.Filename ) }
// 接收client上传的文件
// 从FormFile中获取相关的文件data!
// 而后写入本地文件
func upload(c *gin.Context) {
// 注意此处的文件名和client处的应该是同样的
file, header, err := c.Request.FormFile("uploadFile")
filename := header.Filename
fmt.Println(header.Filename)
// 建立临时接收文件
out, err := os.Create("copy_" + filename)
if err != nil {
log.Fatal(err)
}
defer out.Close()
// Copy数据
_, err = io.Copy(out, file)
if err != nil {
log.Fatal(err)
}
c.String(http.StatusOK, "upload file success")
}spa
func upload(c *gin.Context) {orm
// Multipart form
form, err := c.MultipartForm()
if err != nil {
c.String(http.StatusBadRequest, fmt.Sprintf("get form err: %s", err.Error()))
return
}
files := form.File["files"]ip
for _, file := range files {
if err := c.SaveUploadedFile(file, file.Filename); err != nil {
c.String(http.StatusBadRequest, fmt.Sprintf("upload file err: %s", err.Error()))
return
}
}get
c.String(http.StatusOK, fmt.Sprintf("Uploaded successfully %d files ", len(files)))文件上传
}io