2010-11-22 10 views
0

Actuellement, j'ai le système qui fait redimensionner et créer autant d'images que nécessaire et les stocker sur le système de fichiers des serveurs Web. Aussi je fais et entrée dans la base de données de l'image basename dans mysql. Par exemple je télécharge 5 images le nom de base serait 372FDSC et alors il ajoutera _0, _1 etc. à chaque image dans le système de fichiers de sorte que l'image ressemble à 372FDSC_0.jpeg et ainsi de suite.Sauvegarde des noms d'image dans mysql?

Alors, où est mon problème? C'est que je ne peux pas supprimer ou télécharger de nouvelles images puisque je ne connais pas le nom de l'image dans le code.

Je me demande s'il existe une meilleure solution pour enregistrer les noms d'image pour l'article? Comme la ligne mysql qui contient tous les noms (372FDSC_0.jpgeg; 372FDSC_01.jpeg etc.) Donc, quand je supprime ou en charge de nouveaux, je sais quel nom de fichier je peux utiliser.

J'espère que tout cela a du sens pour tout le monde si ce n'est pas s'il vous plaît dites et je vais ajouter les détails requis.

+0

Chaque réponse ici n'est pas ce que je cherchais mais c'est probablement parce que ma mauvaise question. J'ai donc choisi un qui m'a aidé un peu à réécrire mon flux de travail de l'image. – arma

Répondre

2

Vous pouvez utiliser un horodatage à la fin du nom de l'image, vous êtes donc certain qu'il est unique.

$new_name = $basename . "_" . time() . $extension; 
+0

Btw après un certain temps à frapper ce script de merde je me suis rendu compte que la fonction time() n'est pas garantie valeur unique. Depuis que mon script est ultra rapide, je reçois comme toutes les images avec le même horodatage. Donc, je vais probablement générer ma propre chaîne de 12 symboles pour chaque nom d'image. – arma

+0

Oh, et si vous générez le même nom pour les vignettes et autres images, les noms seront désactivés. – arma

+0

Vous pouvez utiliser sleep() après chaque image, ainsi l'horodatage sera changé. Pour obtenir le même horodatage pour la vignette et l'image, vous devez conserver l'horodatage dans une variable. Comme $ time = time(), l'horodatage sera capturé. – Flipke

1

Vous pouvez utiliser l'horodatage comme indiqué ci-dessus ou vous pourriez aussi donner à vos images un nom descriptif basé sur ce que l'image contient au lieu de la dénomination de 372FDSC.

1

Avoir 3 colonnes dans votre tableau de base de données intitulé «basename», «no of images», «nom de l'article». Faites maintenant une boucle pour obtenir toutes les images. par exemple si vous avez 5 images dans votre article 'abc'. Ensuite, vous utiliserez

for($i=0;$i<5;$i++) 
    $images[]=$basename.$imageno; 

gardant à l'esprit que $ basename est le nom de base récupéré la base de données et même pour imageno de $.

0

Vous pouvez utiliser votre champ d'ID article pour renommer les images. Par exemple, si l'ID de votre article est 237, les images seront 237_1.jpg, 237_2.jpg, etc.

Dans ce cas, vous n'aurez pas besoin de stocker le nom de l'image dans db également.