2010-06-30 6 views
10

Quelqu'un peut-il me suggérer le meilleur moyen d'écrire du code pour télécharger un fichier dans CakePHP?Meilleure pratique pour télécharger des fichiers dans CakePHP

  • Je dois télécharger un fichier et enregistrer son nom dans la table.
  • Si l'enregistrement échoue, il ne doit pas télécharger le fichier.
  • Si le téléchargement échoue, l'enregistrement doit être annulé.
  • Le code doit être réutilisable
  • je dois télécharger le fichier dans afterSave rappel
+2

FYI, lorsque vous traitez en PHP, le téléchargement du fichier est déjà terminé, le fichier est dans un répertoire temporaire. Vous n'avez qu'à affecter ce fichier à un emplacement final et insérer la ligne correspondante dans la base de données. (Et gérer les échecs possibles.) – sibidiba

Répondre

16

Edit (2015): S'il vous plaît voir la liste Awesome CakePHP pour les plugins de fichiers actuels (branche 2.x here)


Edit (2013): Cette réponse est maintenant un peu daté, donc Je vais juste laisser une liste de tous les plug-ins de téléchargement mentionnés:


Réponse originale (à partir de 2010):

Vous pourriez envisager d'utiliser le Media plugin dont il a été question lors du dernier CakeFest. Il est assez complet et contient des fonctionnalités telles que la création de variantes de fichiers (miniatures d'images ou de vidéos), des aides pour la sortie de différents types de fichiers et des éléments pour créer plus rapidement des formulaires de téléchargement de fichiers multiples; et a également mis un fort accent sur la sécurité dès le départ que je peux rassembler de the slides. Je l'utilise en production et je trouve que cela fonctionne bien, plus il semble être sous active development plus que d'autres options que j'ai vu si c'est quelque chose à faire (par exemple MeioUpload behavior, Uploader plugin, FileUpload plugin et divers articles de boulangerie/blog sur le sujet).

+1

Laissez-moi sans vergogne ajouter [Upload Pack] (https://github.com/szajbus/uploadpack) à la liste –

+1

[Uploader] (http://github.com/milesj/cake-uploader/commits/master) et [Upload Pack] (https: // github.com/szajbus/uploadpack) sont les 2 meilleures librairies CakePHP 2.x prises en charge que j'ai trouvées après une demi-journée de recherche et de tentatives d'implémentation. – Anthony

+2

[Upload Plugin 2.0] (https://github.com/josegonzalez/upload) par Jose Diaz-Gonzalez semble être un bon choix maintenant. –