# DocyFieldUpload URL: /docs/native/expo/upload File upload form field using expo-document-picker for native file selection. ## Overview `DocyFieldUpload` provides a native file picker using `expo-document-picker`. Users can select single or multiple files from device storage with configurable file type filters and size limits. ## Installation ```bash pnpm dlx @docyrus/cli add @docyrus/rn-form-fields ``` ```bash # Required: expo-document-picker npx expo install expo-document-picker ``` **Dependencies:** - [expo-document-picker](https://www.npmjs.com/package/expo-document-picker) ## Usage ```tsx import { DocyFieldUpload } from '@/components/docyrus-native/form-fields/docy-field-upload'; console.log(files)} /> ``` ## API Reference | Prop | Type | Default | Description | |------|------|---------|-------------| | `value` | `UploadedFile[]` | `[]` | Array of uploaded files | | `onChange` | `(files: UploadedFile[]) => void` | — | Called when files change | | `maxFiles` | `number` | `10` | Maximum number of files allowed | | `maxSizeBytes` | `number` | — | Max size per file in bytes | | `allowedTypes` | `string[]` | `['*/*']` | MIME type filters | | `onUpload` | `(files: UploadedFile[]) => Promise` | — | Optional upload handler | | `uploadLabel` | `string` | `'Select files'` | Custom button label | Inherits all [rn-form-fields](/docs/native/docyrus/form-fields) (name, label, placeholder, helpText, required, disabled, readOnly, error, size, variant, etc.) ## Type Exports | Type | Description | |------|-------------| | `UploadedFile` | `{ uri: string; name: string; size: number; mimeType: string }` | | `DocyFieldUploadProps` | Props for DocyFieldUpload component | ## Compatibility | Platform | Support | |----------|---------| | Expo Go | Yes | | Dev Client | Yes | | Bare RN | Requires config plugin |