2013-01-13 4 views
0

Je ne comprends toujours pas vraiment le stockage d'images et l'affichage. Laissez-moi vous donner un exemple, ce que j'ai fait en premier (les gens disent que ma logique est une mauvaise idée). Je l'ai fait au début, chaque utilisateur a un dossier avec un user_id, et après le formulaire a été soumis, il enregistre l'image avec un unique name dans ce dossier et le nom de l'image aussi, avec l'extension dans la base de données, et je « ai montré l'image correspondant au nom de fichier dans le dossier avec le nom enregistré dans la base de données,stocker et montrer des images

exemple (ici sautons le nom unique, juste pour le rendre plus clair un peu)

un utilisateur télécharge une image nommé butterfly.jpg

l'image est stockée dans la base de données ase

id | name   | 
1 | butterfly.jpg | 

et stockés dans un dossier aussi avec le même nom

/images/user_id/butterfly.jpg 

et montrant l'image de cette façon

<img src="images/unser_id/<?php echo $name ?>" alt=""> 

Il correspond aux noms (je l'espère avoir été clair désolé si non)

Donc, je sais que ma logique est une mauvaise logique, parce que le stockage des noms dans la base de données conduira à un énorme, peut-être à d'autres problèmes dans le futur plus tard

Et ce que je voudrais demander si ce n'est pas une grande requête, si quelqu'un pouvait écrire un fil de logique avec quelques exemples de codes (je ne demande pas de l'écrire pour moi), juste pour me donner l'idée de ce que je manque

Et d'autres questions sur ce que je lis à propos

Certains développeurs disent, ils stockent uniquement le nom du dossier d'image dans la base de données, qui est d'accord, mais comment puis-je montrer ces images si seulement le nom du dossier est stocké? car il aura peut-être plus d'une image comme 3 l'image originale et 2 autres miniatures. Alors s'il vous plaît ne me détestez pas avec cette question, je l'ai seulement demandé parce que je voudrais apprendre et obtenir des conseils d'un développeur plus expérimenté.

+0

Bien, si vous ne voulez pas stocker les noms d'image dans db peut-être vous pouvez stocker juste le nom du dossier et que itérer le répertoire et afficher les images en boucle? – vodich

+0

À propos de quel énorme problème parlez-vous cela va conduire à? Je veux dire que si vous voulez apprendre quelque chose, vous devriez poser votre question, ne pas la cacher;) – hakre

+0

Si chaque ligne de la table des images prend '512' octets (il ne va pas) et vous avez 1 000 000 images, cela serait conduire à une taille de base de données de 488 (+/- quelques Mo d'overhead) mégaoctets. Ce qui n'est pas énorme du tout (vos images prendront beaucoup plus de place) Ne vous inquiétez pas pour de telles choses. L'optimisation prématurée est la racine de tout Mal. – vanneto

Répondre

1

Je pense que vous êtes sur la bonne voie. La manière correcte de le faire est - pour télécharger le fichier sur votre serveur et ensuite mettre le chemin de l'image dans votre base de données, autant que je peux dire, vous le faites correctement. :-)

+0

pourquoi je pensais qu'il est mauvais bacause, je ne stocke pas le chemin d'imahe dans le db je stocke le nom, et storit sur le serveur ainsi que de faire correspondre le résultat, donc c'est ok aussi? désolé pour les stupides requêtes – Levi

+0

Tant que vous êtes cohérent tout au long de votre application, je ne vois pas de problème avec elle. Je peux voir l'avantage de créer un dossier pour chaque utilisateur et de stocker les images, de telle sorte que plusieurs utilisateurs peuvent télécharger des images avec le même nom, etc. Tant que vous ne stockez pas les images directement dans votre base de données, vous devriez être très bien . –

+0

merci beaucoup pour votre réponse, et désolé, je ne peux pas vous donner un upvote j'ai besoin de 15 perutation :( – Levi

Questions connexes