단일 파일

이슈 #774 혹은 자세한 예제 코드를 확인하세요.

file.Filename신뢰할 수 없습니다.. MDN의 Content-Disposition과 이슈 #1693를 참조하세요.

파일 이름은 항상 선택 사항이며 응용 프로그램에서 맹목적으로 사용해서는 안됩니다. 경로 정보를 제거하고 서버 파일 시스템 규칙으로 변환해야합니다.

func main() {
	router := gin.Default()
	// 멀티파트 폼에 대한 최저 메모리 설정 (기본값 32 MiB)
	router.MaxMultipartMemory = 8 << 20  // 8 MiB
	router.POST("/upload", func(c *gin.Context) {
		// 단일 파일
		file, _ := c.FormFile("file")
		log.Println(file.Filename)

		// 특정 경로(dst)에 파일을 업로드 합니다.
		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"
Last modified 27.05.2020 : chore: uncomment the code (#123) (7e8c3a0)