Libreria JS per il caricamento di file anche di grandi dimensioni splittandolo in blob più piccoli. Si dovrebbe configurare un endpoint lato server per gestire i blob e ricomporli quando filepond manda il segnale che ha finito.
Nella documentazione questo processo è spiegato in dettaglio. Sotto c’è un esempio di integrazione con Livewire.
Utilizzo
Base
Nella versione più semplice basta passare un inputElement e chiamare la funzione create
const inputElement = document.querySelector('input[type="file"]');
const pond = FilePond.create(inputElement);Style
Espone delle variabili CSS da sovrascrivere. Doc.
Localizzazione
Alla funzione create si possono passare delle opzioni di configurazione, tra cui i labels da usare nelle varie parti dell’elemento. Si può usare l’html dentro i label.
Livewire
Se utilizzato dentro un componente Livewire, si può sfruttare la sua integrazione col js per far gestire il processo di upload a Livewire:
FilePond.create(inputElement, {
[...],
server: {
url: null,
process:(fieldName, file, metadata, load, error, progress, abort, transfer, options) => {
@this.upload('var_name', file, load, error, progress)
},
revert: (filename, load) => {
@this.removeUpload('var_name', filename, load)
},
patch: null,
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
}
}
})