File uploader for golang projects.
Use the structure of the Uploader
to describe the download of files.
upl := uploader.Uploader{
BaseDir: "/var/www/upload",
BaseUrl: "",
Dir: "avatars",
Path: "avatars",
MimeTypes: uploader.MimeTypes{"image/png", "image/jpeg"},
MaxFileSize: MaxFileSize,
}
After that, you get a instance of multipart.FormFile
and pass it to the Uploader.Upload
method
_, multipartFile, err := r.FormFile("avatars")
// check err ...
result := upl.Upload(multipartFile)
// process result
The result is a struct
type Result struct {
Code int
Path string
Name string
MimeType string
Size int64
}
You can process the code returned as a result
CodeOk
upload successfulCodeErrDetectMimeType
error detect mime typeCodeErrInvalidMimeType
invalid mime typeCodeErrExceedMaxFileSize
exceed max file sizeCodeErrGenerateFileName
error generate file nameCodeErrCreateDir
error create directoryCodeErrCreateFile
error create new fileCodeErrOpenFile
error open uploaded fileCodeErrCopyFile
error copy src to dst file
TODO: