gin上传文件
gin上傳文件測試用例
傳文件的文件名可以由用戶自定義,所以可能包含非法字符串,為了安全起見,應該由服務端統一文件名規則
func main() {router := gin.Default()// 給表單限制上傳大小 (默認 32 MiB)// router.MaxMultipartMemory = 8 << 20 // 8 MiBrouter.POST("/upload", func(c *gin.Context) {// 單文件file, _ := c.FormFile("file")log.Println(file.Filename)// 上傳文件到指定的路徑// c.SaveUploadedFile(file, dst)c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename))})router.Run(":8080") }curl?測試:
curl -X POST http://localhost:8080/upload \-F "file=@/Users/appleboy/test.zip" \-H "Content-Type: multipart/form-data"多文件上傳
詳細示例:example code
func main() {router := gin.Default()// 給表單限制上傳大小 (默認 32 MiB)// router.MaxMultipartMemory = 8 << 20 // 8 MiBrouter.POST("/upload", func(c *gin.Context) {// 多文件form, _ := c.MultipartForm()files := form.File["upload[]"]for _, file := range files {log.Println(file.Filename)// 上傳文件到指定的路徑// c.SaveUploadedFile(file, dst)}c.String(http.StatusOK, fmt.Sprintf("%d files uploaded!", len(files)))})router.Run(":8080") }curl?測試:
curl -X POST http://localhost:8080/upload \-F "upload[]=@/Users/appleboy/test1.zip" \-F "upload[]=@/Users/appleboy/test2.zip" \-H "Content-Type: multipart/form-data" 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結