Per iniziare
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-uploader`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/uploader/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Puoi usare il nostro setup assistito dall'IA per installare il plugin. Aggiungi le skill Capgo al tuo strumento di IA usando il seguente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsPoi usa il seguente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-uploader` plugin in my project.Se preferisci la configurazione manuale, installa il plugin eseguendo questi comandi e segui le istruzioni specifiche per piattaforma qui sotto:
bun add @capgo/capacitor-uploaderbunx cap syncImporta
Sezione intitolata “Import”import { Uploader } from '@capgo/capacitor-uploader';Avvio rapido
Sezione intitolata “Quick start”Avvia un upload, iscriviti a events, e monitora gli upload id.
import { Uploader } from '@capgo/capacitor-uploader';
let uploadId = '';
const listener = await Uploader.addListener('events', async (event) => { if (event.id !== uploadId) return;
if (event.name === 'uploading') { console.log(event.payload.percent); }
if (event.name === 'completed' || event.name === 'failed') { if (event.eventId) { await Uploader.acknowledgeEvent({ eventId: event.eventId }); } await listener.remove(); }});
const { id } = await Uploader.startUpload({ filePath: 'file:///data/user/0/.../scan.jpg', serverUrl: 'https://api.example.com/v1/assets', method: 'POST', headers: { Authorization: 'Bearer token' }, maxRetries: 3,});uploadId = id;Esempio: PUT S3 presigned
Sezione: “Esempio: presigned S3 PUT”PUT supportano un singolo file. Usa la presigned URL come serverUrl e imposta method: 'PUT'.
await Uploader.startUpload({ filePath: capturedUri, serverUrl: presignedUrl, method: 'PUT', headers: { 'Content-Type': 'image/jpeg' },});Esempio: multipart form con campi extra
Sezione: “Esempio: multipart form con campi extra”await Uploader.uploadMultipart({ url: 'https://api.example.com/upload', filePath: localPath, fieldName: 'file', fields: { userId: '42', kind: 'receipt' }, headers: { Authorization: 'Bearer token' },});Errori comuni
Sezione intitolata “Errori comuni”- File multipli: usa l'
filesarray sustartUploadper una singola richiesta multipart.PUTnon può inviare più body. - Background web: gli upload si interrompono se l'utente chiude la tab. Usa le piattaforme native se l'operazione deve continuare in background.
- Annulla: chiamata
removeUpload({ id })with the id fromstartUpload. - Progresso: allega sempre il
eventslistener prima di iniziare, altrimenti potresti perdere i primi progressi.
Panoramica API
Sezione intitolata “Panoramica API”startUpload
Sezione intitolata “startUpload”Inizia l'upload di un file su un server.
L'upload continuerà in background anche se l'app viene chiusa o messa in background. Ascolta gli eventi di upload per monitorare progressi, completamento o errori.
import { Uploader } from '@capgo/capacitor-uploader';
const { id } = await Uploader.startUpload({ filePath: 'file:///path/to/file.jpg', serverUrl: 'https://example.com/upload', headers: { 'Authorization': 'Bearer token' }, method: 'POST', uploadType: 'multipart', fileField: 'photo'});console.log('Upload started with ID:', id);removeUpload
Sezione intitolata “removeUpload”Annulla e rimuovi un upload in corso.
Questo interromperà l'upload se è in corso e libererà le risorse.
import { Uploader } from '@capgo/capacitor-uploader';
await Uploader.removeUpload({ id: 'upload-123' });Riferimento ai tipi
Sezione: “Type Reference”uploadOption
Sezione intitolata “uploadOption”Opzioni di configurazione per l'upload di un file.
export interface uploadOption { /** * The local file path of the file to upload. * Can be a file:// URL or an absolute path. * * @since 0.0.1 */ filePath: string;
/** * The server URL endpoint where the file should be uploaded. * * @since 0.0.1 */ serverUrl: string;
/** * The title of the upload notification shown to the user. * Android only. * * @default 'Uploading' * @since 0.0.1 */ notificationTitle?: string;
/** * HTTP headers to send with the upload request. * Useful for authentication tokens, content types, etc. * * @since 0.0.1 * @example * ```typescript * headers: { * 'Authorization': 'Bearer token123', * 'X-Custom-Header': 'value' * } * ``` */ headers: { [key: string]: string; };
/** * The HTTP method to use for the upload request. * * @default 'POST' * @since 0.0.1 */ method?: 'PUT' | 'POST';
/** * The MIME type of the file being uploaded. * If not specified, the plugin will attempt to determine it automatically. * * @since 0.0.1 * @example 'image/jpeg', 'application/pdf', 'video/mp4' */ mimeType?: string;
/** * Additional form parameters to send with the upload request. * These will be included as form data in multipart uploads. * * @since 0.0.1 */ parameters?: { [key: string]: string };
/** * The maximum number of times to retry the upload if it fails. * * @since 0.0.1 * @default 0 */ maxRetries?: number;
/** * The type of upload to perform. * - 'binary': Uploads the file as raw binary data in the request body * - 'multipart': Uploads the file as multipart/form-data * * @default 'binary' * @since 0.0.2 */ uploadType?: 'binary' | 'multipart';
/** * The form field name for the file when using multipart upload type. * Only used when uploadType is 'multipart'. * * @default 'file' * @since 0.0.2 */ fileField?: string;}UploadEvent
Sezione intitolata “UploadEvent”Evento emesso durante il ciclo di vita dell'upload.
export interface UploadEvent { /** * The current status of the upload. * - 'uploading': Upload is in progress * - 'completed': Upload finished successfully * - 'failed': Upload encountered an error * * @since 0.0.1 */ name: 'uploading' | 'completed' | 'failed';
/** * Additional data about the upload event. * * @since 0.0.1 */ payload: { /** * Upload progress percentage from 0 to 100. * Only present during 'uploading' events. * * @since 0.0.1 */ percent?: number;
/** * Error message if the upload failed. * Only present during 'failed' events. * * @since 0.0.1 */ error?: string;
/** * HTTP status code returned by the server. * Present during 'completed' and 'failed' events. * * @since 0.0.1 */ statusCode?: number; };
/** * Unique identifier for this upload task. * * @since 0.0.1 */ id: string;}Fonte di verità
Sezione intitolata “Fonte di verità”Questa pagina è generata dal src/definitions.ts. Riesegui la sync quando il API pubblico cambia upstream.
Continua da Getting Started
Sezione intitolata “Continua da Getting Started”Se stai usando Per iniziare per pianificare le operazioni della dashboard e di API, collegalo a Utilizzo di @capgo/capacitor-uploader per la funzionalità nativa in Utilizzo di @capgo/capacitor-uploader, Panoramica API per i dettagli di implementazione in Panoramica di API, Introduzione per i dettagli di implementazione in Introduzione, Chiavi API per i dettagli di implementazione in Chiavi API, e Dispositivi per i dettagli di implementazione in Dispositivi.