Skip to content

File Upload

package main
import (
"log"
"path/filepath"
"github.com/0mjs/zinc"
)
func main() {
app := zinc.New()
app.Post("/upload", func(c *zinc.Context) error {
file, err := c.FormFile("document")
if err != nil {
return zinc.NewError(zinc.StatusBadRequest).WithCause(err)
}
name := filepath.Base(file.Filename)
if err := c.SaveFile(file, filepath.Join("uploads", name)); err != nil {
return err
}
return c.Status(zinc.StatusCreated).JSON(zinc.Map{
"name": name,
"size": file.Size,
})
})
log.Fatal(app.Listen())
}

SaveFile creates missing parent directories.