2010-06-30 21 views
10

Qualcuno può suggerirmi il modo migliore per scrivere codice per caricare un file in CakePHP?Best practice per caricare file in CakePHP

  • Ho bisogno di caricare un file e salvare il suo nome nella tabella.
  • Se il salvataggio del record fallisce, non caricare il file.
  • Se il caricamento non riesce, il record dovrebbe essere ripristinato.
  • Il codice dovrebbe essere riutilizzabile
  • ho bisogno di caricare il file in afterSave callback
+2

FYI, quando si elabora in PHP, il caricamento del file è già stato completato, il file si trova in una directory temporanea. Devi solo modellare questo file in una posizione finale e inserire la riga corrispondente nel DB. (E gestisci possibili errori.) – sibidiba

risposta

16

Edit (2015): prega di consultare la lista Awesome CakePHP per i plugin file corrente (ramo 2.x here)


Edit (2013): Questa risposta è ormai un po 'datato, in modo mi limito a lasciare un elenco di tutti i plugin di upload citati:


Risposta originale (dal 2010):

Si potrebbe considerare l'utilizzo dello Media plugin di cui si è parlato all'ultimo CakeFest. È abbastanza completo, contiene funzionalità come la creazione di variazioni di file (ad esempio miniature di immagini o video), helper per l'output di diversi tipi di file ed elementi per aiutare a creare più moduli di caricamento di file più velocemente; e ho anche prestato particolare attenzione alla sicurezza fin dall'inizio, dal momento che posso raccogliere dal the slides. Io lo uso in produzione e trovo che funzioni bene, in più sembra essere più sotto active development rispetto ad altre opzioni che ho visto se questo è qualcosa da fare (ad esempio MeioUpload behavior, Uploader plugin, FileUpload plugin e vari articoli Bakery/blog sull'argomento).

+1

Lasciami aggiungere spudoratamente [Upload Pack] (https://github.com/szajbus/uploadpack) alla lista –

+1

[Uploader] (http://github.com/milesj/cake-uploader/commits/master) e [Upload Pack] (https: // github.com/szajbus/uploadpack) sono le 2 migliori librerie CakePHP 2.x che ho trovato dopo mezza giornata di ricerche e tentativi di implementazione. – Anthony

+2

[Upload Plugin 2.0] (https://github.com/josegonzalez/upload) di Jose Diaz-Gonzalez sembra una buona scelta ora. –