2012-12-12 2 views
0

Je dois créer (ne pas télécharger!), Stocker et être en mesure de télécharger le fichier PDF en utilisant l'application Play 2.0. Comment je pourrais faire ça dans Play? Je pense à stocker le fichier sous forme de blob dans MySQL DB, mais dans ce cas, est-il possible de créer un fichier PDF sans utiliser le système de fichiers? La deuxième question est de savoir comment implémenter le téléchargement de fichier?Stockage de fichiers PlayFramework 2.0

Répondre

2

En général, le stockage de fichiers dans la base de données est généralement plus coûteux et comporte certains inconvénients. (vérifiez pourquoi: Storing Images in DB - Yea or Nay?)

D'autre part, cela dépend aussi si les fichiers doivent être protégés ou s'il s'agit d'une sorte de document public.

Il y a deux solutions à considérer:

  1. si vous ne vous inquiétez pas de la sécurité, vous pouvez simplement créer des fichiers et enregistrer dans un certain dossier, que, vous pouvez utiliser un serveur http pour le servir et votre DB ne conserve que les chemins. C'est une bonne idée, surtout que les serveurs sont simplement créés pour servir des fichiers, donc vous n'avez pas besoin de réinventer la roue.
  2. si les fichiers sont limités, les stocker aussi dans le système de fichiers, en tout cas dans certains dossiers non publics, vous pouvez retourner un File comme Result de l'action que pour les visiteurs authentifiés/autorisés avec ce morceau de code simple (Java)

    public static Result serveFile(String absouteFilePath){ 
        //some authorization... 
        return ok(new File(absouteFilePath)); 
    } 
    
+0

Résolu avec des fichiers à stocker dans le système de fichiers et les métadonnées dans le DB. Merci! – Jolene

Questions connexes