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