File upload
Attach a file — covers, avatars, CSVs that somehow always arrive on Friday.
Standalone
Section titled “Standalone”from almasix.orbit.forms import Form, FileUpload
form = Form.make("demo").schema([ FileUpload.make("cover") .disk("public") .directory("covers") .accepted_file_types(["image/png", "image/jpeg"]) .image_preview() .max_size(2048) # KB])In a Resource
Section titled “In a Resource”from almasix.orbit import Resourcefrom almasix.orbit.forms import Form, FileUpload
class PostResource(Resource): @classmethod def form(cls, form: Form) -> Form: return form.schema([ FileUpload.make("avatar").avatar().disk("s3").directory("avatars"), FileUpload.make("gallery").image().multiple().reorderable(), FileUpload.make("attachment").label("Attachment"), ])Key methods
Section titled “Key methods”.disk(name)/.directory(path)→data-disk/data-directory.multiple()/.avatar()/.image_preview()/.reorderable().image()/.accepted_images()— common image MIME set + preview.accepted_file_types([...])→acceptattribute.max_size/.min_size(KB) and.image_size(min_width=…, …)for host validation hints.required() / .disabled(...) / .visible(...).label(...) / .helper_text(...)
Closures work on .label(), .helper_text(), .placeholder(), .visible(), .disabled(), and .required() — see Form closures.
Preview
Section titled “Preview”
