2010-05-20 7 views
1

J'ai joué avec la création de documents pdf pour un projet sur lequel je travaille. Je voudrais stocker le document pdf généré dans une base de données SQL, puis plus tard être en mesure de récupérer ce pdf.Stockage et récupération de fichiers PDF créés dynamiquement en sql

Quelles sont les suggestions pour ce faire? Le document peut-il être stocké dans la base de données sans créer physiquement le document sur le serveur?

Répondre

1

Quelles sont quelques suggestions pour faire cela? Le document peut-il être stocké dans la base de données sans créer physiquement le document sur le serveur?

Bien sûr, il suffit de créer le fichier PDF en tant que flux d'octets (byte[]) et de le stocker dans la base de données. En fonction de ce que vous utilisez pour le créer, vous n'avez pas à l'écrire dans le système de fichiers.

En fait, sur l'argument de l'endroit où le stocker. Si vous avez SQL server 2008, vous voulez l'utiliser. Il va stocker le fichier sur le système de fichiers, mais vous pouvez y accéder via la base de données comme vous le feriez avec d'autres données. Tu reçois le meilleur des deux mondes.

0

Enregistrez le PDF en tant que byte[], puis vous pouvez utiliser itextsharp pour créer le PDF lorsque vous êtes prêt à l'afficher.

1

Gardez à l'esprit que SQL Server 2008 a maintenant le type de données FILESTREAM. Vous pouvez écrire les données dans le système de fichiers, tout en les stockant dans une colonne.

+0

J'aime cette approche. – mwright

0

Vous pouvez utiliser une table comme celle-ci pour stocker des fichiers dans SQL Server.

CREATE TABLE [Documents] 
(
    [FileName] nvarchar(1000), 
    [FileContent] varbinary(max) 
) 
0

Vous avez 2 façons de le faire:

  1. magasin dans FileServer et stocker le nom de fichier dans la base de données.
  2. Encoder le fichier et le stocker dans la base de données.

Je recommande que vous utilisez le second ..
pourquoi choisir cette réponse ?? pour la sécurité.

Une des nombreuses raisons: Un petit exemple:

  • Si vous faites le Firt (stocker le fichier dans le serveur de fichiers ...) vous un dossier sur la mise en caisse de votre base de données .. donc votre serveur sera vulnérable pour les attaques ou pour les virus.

  • Si vous faites la seconde. le fichier sera encode et stocker dans la base de données et vous ne besoin d'être inquiet au sujet des attaques ou des infections de la machine ..

Je pense que ce sont 1 simple raison de savoir pourquoi ne jamais utiliser la première manière !!!! !

Questions connexes