> For the complete documentation index, see [llms.txt](https://tech.x2bee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tech.x2bee.com/dev-guide/developer-guide-en/dev-start/markdown/file-upload-and-large-excel-download.md).

# File Upload and Large Excel Download

This guide explains file upload and large Excel download. File upload uses REST API and `FormData`, with WAS/NAS, FTP, AWS S3, and Azure Blob Storage options. Large downloads use MyBatis Cursor, `@ExcelDownLoad`, and `ExcelUtil.createCursorExcel`.

On the client, use `restApi.uploadPost` and upload components such as `Upload` and `UploadBox`. Configure storage through `application.yml` and register `Uploader` beans with `@Qualifier("uploader")` or `@Qualifier("videoUploader")`.

For large Excel downloads, define a MyBatis `Cursor`, call `ExcelUtil.createCursorExcel`, and use `downloadStaticFile` from `download-utils.ts`. Preserve all source code, configuration keys, URLs, file names, error codes, and class names.
