Stockage des fichiers soumis par l'utilisateur dans une base de données MySQL

Il est parfois utile de collecter des données auprès des utilisateurs de votre site Web et de stocker ces informations dans un MySQL base de données. Nous avons déjà vu que vous pouvez remplir une base de données en utilisant PHP, nous allons maintenant ajouter l'aspect pratique de permettre l'ajout des données via un formulaire Web convivial.

Ensuite, vous devez créer process.php, la page à laquelle notre formulaire envoie ses données. Voici un exemple de la façon de collecter ces données pour les publier dans la base de données MySQL:

Bien sûr, avant de l'essayer, nous devons nous assurer que la table existe réellement. L'exécution de ce code devrait créer une table qui peut être utilisée avec nos exemples de fichiers:

Maintenant que vous savez comment stocker les données utilisateur dans MySQL, allons un peu plus loin et apprenons à télécharger un fichier pour le stockage. Tout d'abord, créons notre base de données exemple:

La première chose que vous devriez remarquer est un champ appelé

instagram viewer
id qui est réglé sur INCRÉMENTATION AUTOMATIQUE. Qu'est-ce que Type de données signifie qu'il comptera pour attribuer à chaque fichier un ID de fichier unique commençant à 1 et allant à 9999 (puisque nous avons spécifié 4 chiffres). Vous remarquerez probablement aussi que notre champ de données s'appelle LONGBLOB. Il existe de nombreux types de BLOB comme nous l'avons mentionné précédemment. TINYBLOB, BLOB, MEDIUMBLOB et LONGBLOB sont vos options, mais nous avons défini la nôtre sur LONGBLOB pour permettre les fichiers les plus volumineux possibles.

Ensuite, nous allons créer un formulaire pour permettre à l'utilisateur de télécharger son fichier. C'est juste une forme simple, évidemment, vous pouvez l'habiller si vous le souhaitez:

Ensuite, nous devons réellement créer upload.php, qui prendra notre fichier utilisateur et le stockera dans notre base de données. Voici un exemple de codage pour upload.php.

Ensuite, il utilise le ADDSLASHES une fonction. Cela permet d'ajouter des barres obliques inverses si nécessaire dans le nom du fichier afin que nous n'obtenions pas d'erreur lorsque nous interrogerons la base de données. Par exemple, si nous avons Billy'sFile.gif, il le convertira en Billy'sFile.gif. FOPEN ouvre le fichier et FREAD est un fichier binaire sécurisé lu de sorte que le ADDSLASHES est appliqué aux données du fichier si nécessaire.

Ensuite, nous ajoutons toutes les informations collectées par notre formulaire dans notre base de données. Vous remarquerez que nous avons répertorié les champs en premier et les valeurs en second afin que nous n'essayions pas accidentellement d'insérer des données dans notre premier champ (le champ d'identification automatique)

Nous avons déjà appris à récupérer données simples à partir de notre base de données MySQL. De même, le stockage de vos fichiers dans une base de données MySQL ne serait pas très pratique s'il n'y avait pas de moyen de les récupérer. Nous allons apprendre à le faire en attribuant à chaque fichier une URL basée sur leur numéro d'identification. Si vous vous souvenez quand nous avons téléchargé les fichiers, nous avons automatiquement attribué à chacun des fichiers un numéro d'identification. Nous l'utiliserons ici lorsque nous rappellerons les fichiers. Enregistrez ce code sous download.php

Maintenant, pour récupérer notre fichier, nous pointons notre navigateur vers: http://www.yoursite.com/download.php? id = 2 (remplacez le 2 par l'ID de fichier que vous souhaitez télécharger / afficher)

Ce code est la base pour faire beaucoup de choses. Avec cela comme base, vous pouvez ajouter une requête de base de données qui répertorierait les fichiers et les placer dans un menu déroulant pour que les gens choisissent. Ou vous pouvez définir ID comme un numéro créé de façon aléatoire afin qu'un graphique différent de votre base de données soit affiché au hasard à chaque visite d'une personne. Les possibilités sont infinies.

Comme notre code précédent qui téléchargeait des fichiers, ce script permet de supprimer des fichiers simplement en tapant leur URL: http://yoursite.com/remove.php? id = 2 (remplacez 2 par l'ID que vous souhaitez supprimer.) Pour des raisons évidentes, vous souhaitez soyez prudent avec ce code. Ceci est bien sûr pour la démonstration, lorsque nous construisons réellement des applications, nous voudrons mettre en place des garanties demander à l'utilisateur s'il est sûr de vouloir supprimer, ou peut-être uniquement autoriser les personnes disposant d'un mot de passe à supprimer des fichiers. Ce code simple est la base sur laquelle nous allons construire pour faire toutes ces choses.