Mídia
FileUpload
Um input de arquivo desenhado como botão, área de soltar e fila, que verifica tipo, tamanho e quantidade, com progresso do envio.
Testado com WAI-ARIA
Importação
main.ts
import { FileUpload } from '@vitral/vue';Avançado
Drag images here, up to five, 1 MB each.
Básico
API
Lido de packages/vue/src/components/FileUpload/types.ts, então diz o que o componente aceita de fato.
Props
| Nome | Tipo | Descrição |
|---|---|---|
| mode | 'advanced' | 'basic' | `advanced` (o padrão): uma área de soltar, uma fila e botões de envio. `basic`: um botão. |
| name | string | O nome do campo de formulário com que os arquivos são enviados. O padrão é `'files[]'`. |
| url | string | Para onde os arquivos são enviados. Omita-o com `customUpload`. |
| multiple | boolean | — |
| accept | string | O atributo `accept`: `image/*`, `.pdf`… Arquivos que não combinam são recusados com uma mensagem. |
| maxFileSize | number | Em bytes. Arquivos maiores são recusados com uma mensagem. |
| fileLimit | number | Quantos arquivos podem ser enfileirados e enviados no total. |
| disabled | boolean | — |
| auto | boolean | Envia assim que os arquivos são escolhidos. |
| customUpload | boolean | Emite `uploader` com os arquivos em vez de enviá-los. |
| withCredentials | boolean | — |
| requestPerFile | boolean | Envia cada arquivo numa requisição própria, cada um com sua barra de progresso; um arquivo sai da fila assim que sua requisição dá certo. Por padrão todos os arquivos da fila vão numa só requisição. |
| chooseLabel | string | — |
| uploadLabel | string | — |
| cancelLabel | string | — |
| showUploadButton | boolean | O padrão é true. |
| showCancelButton | boolean | O padrão é true. |
| invalidFileTypeMessage | string | `{name}`, `{types}`. O padrão vem do locale. |
| invalidFileSizeMessage | string | `{name}`, `{size}`. O padrão vem do locale. |
| invalidFileLimitMessage | string | `{limit}`. O padrão vem do locale. |
Mais pt, dt e unstyled de BaseProps; veja pass-through e modo sem estilo.
Emits
| Evento | Payload | Descrição |
|---|---|---|
| select | event: FileUploadEvent & { originalEvent: Event } | — |
| before-upload | event: { xhr: XMLHttpRequest; formData: FormData } | — |
| progress | event: { originalEvent: ProgressEvent; progress: number; file?: File; fileProgress?: number } | `progress` é o do envio inteiro; com `requestPerFile`, `file` e `fileProgress` dizem qual requisição avançou. |
| upload | event: FileUploadEvent & { xhr: XMLHttpRequest } | — |
| error | event: FileUploadEvent & { xhr: XMLHttpRequest } | — |
| uploader | event: FileUploadEvent | Com `customUpload`: envie estes arquivos você mesmo. |
| remove | event: { file: File; files: File[] } | — |
| clear | — | — |
Slots
| Nome | Props do slot | Descrição |
|---|---|---|
| header | (props: { files: File[]; chooseCallback: () => void; uploadCallback: () => void; clearCallback: () => void }) | Conteúdo extra na barra de ferramentas. |
| content | (props: { files: File[]; uploadedFiles: File[]; removeFileCallback: (index: number) => void; progress: number; messages: string[] }) | Substitui a fila. |
| empty | — | Mostrado enquanto a fila está vazia. |