probleme creation de miniatures

probleme creation de miniatures - PHP - Programmation

Marsh Posté le 24-07-2005 à 16:23:02    

Bonjour a tous.
 
j'ai reussi a faire en sorte qu les photos envoyer par le smembres soit renommées
en faisant ca:
 

Code :
  1. $var="meteo-";
  2. $nom_final = $var.$f1_name;
  3. move_uploaded_file($f1_tmpname, "./fichiers/{$nom_final}" ) or $infos .= "- Impossible d'enregistrer le fichier, contacter le webmaster!<br>n";


 
donc si el membre envoie une photos qui se nomme :
Soleil
 
ca donnera  
meteo-soleil
 
 
Mais maintenant j'ai un probleme  pour creer la miniature , je ne sait pas se qu'il faut ecrire dans source et destination, vu que le mot apres "meteo- " ne sera plus soleil , mais ca changera a chaque fois  
 

Code :
  1. <?
  2. $source = imagecreatefromjpeg("couchersoleil.jpg" ); // La photo est la source
  3. $destination = imagecreatetruecolor(200, 150); // On crée la miniature vide
  4. // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
  5. $largeur_source = imagesx($source);
  6. $hauteur_source = imagesy($source);
  7. $largeur_destination = imagesx($destination);
  8. $hauteur_destination = imagesy($destination);
  9. // On crée la miniature
  10. imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
  11. // On enregistre la miniature sous le nom "mini_couchersoleil.jpg"
  12. imagejpeg($destination, 'mini_couchersoleil.jpg');
  13. ?>


---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 24-07-2005 à 16:23:02   

Reply

Marsh Posté le 24-07-2005 à 20:08:48    

Kézako?

Code :
  1. $source = imagecreatefromjpeg($nom_final);
  2. imagejpeg($destination, 'mini_'.$nom_final);



---------------
ACH/VDSHFRCoin◈1435mm⚡
Reply

Marsh Posté le 24-07-2005 à 20:43:23    

j'ai fait ca:
 

Code :
  1. <?
  2. $source = imagecreatefromjpeg("$nom_final" ); // La photo est la source  
  3. $destination = imagecreatetruecolor(200, 150); // On crée la miniature vide  
  4. // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image  
  5. $largeur_source = imagesx($source);
  6. $hauteur_source = imagesy($source);
  7. $largeur_destination = imagesx($destination);
  8. $hauteur_destination = imagesy($destination);
  9. // On crée la miniature  
  10. imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
  11. // On enregistre la miniature sous le nom "mini_couchersoleil.jpg"  
  12. imagejpeg($destination, 'mini_'.$nom_final);
  13. ?>


 
et j'ai cette erreur
 

Code :
  1. Warning: imagesx(): supplied argument is not a valid Image resource in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/upload/envoie2.php on line 6
  2. Warning: imagesy(): supplied argument is not a valid Image resource in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/upload/envoie2.php on line 7
  3. Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/upload/envoie2.php on line 13


---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 24-07-2005 à 21:51:04    

:pfff:  
$source = imagecreatefromjpeg($nom_final);
et pas
$source = imagecreatefromjpeg("$nom_final");
Ca devrait marcher  :) : si tu met des parenthéses, il va chercher en vain un fichier nommé "$nom_final"
 
Ps: est ce que tu as modifié les numero de ligne dans les erreurs ?


---------------
ACH/VDSHFRCoin◈1435mm⚡
Reply

Marsh Posté le 24-07-2005 à 22:03:17    

euh non j'ai rien modifier .
 
Maintenant j'ai fait ca :
 

Code :
  1. <?
  2. $source = imagecreatefromjpeg($nom_final); // La photo est la source  
  3. $destination = imagecreatetruecolor(200, 150); // On crée la miniature vide  
  4. // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image  
  5. $largeur_source = imagesx($source);
  6. $hauteur_source = imagesy($source);
  7. $largeur_destination = imagesx($destination);
  8. $hauteur_destination = imagesy($destination);
  9. // On crée la miniature  
  10. imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
  11. // On enregistre la miniature sous le nom "mini_couchersoleil.jpg"  
  12. imagejpeg($destination, 'mini_'.$nom_final);


 
 
et j'ai ca:
 
Warning: imagesx(): supplied argument is not a valid Image resource in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/upload/envoie2.php on line 6
 
Warning: imagesy(): supplied argument is not a valid Image resource in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/upload/envoie2.php on line 7
 
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/upload/envoie2.php on line 13


---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 24-07-2005 à 22:41:15    

c'est bon j'ai trouvé .
Par contre les images s'enregistre bien dans la base de donnée , mais faut il que je creer un champs migniatures aussi , pour pouvoir mettre les miniatures sur une page , et quand le membres cliquera sur la miniature ca ouvrira la page avec l'image en grand , ou pas ?


---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 25-07-2005 à 08:43:44    

Pas obligé:
Pour afficher la miniature, il faut rajouter le préfixe "mini_" pour avoir la miniature.
Ex de code html (ou $nom et le nom de fichier de l'image):

<a href="./fichiers/<?php echo $nom; ?>">
<img src="./fichiers/mini_<?php echo $nom; ?>" />
</a>


---------------
ACH/VDSHFRCoin◈1435mm⚡
Reply

Marsh Posté le 25-07-2005 à 15:03:48    

bon j'y arrive pas
 
J'ai donc fait fait ce script qui me permet d'uploader des photos sur mon ftp et qui creer egalement des migniatures
 
 

Code :
  1. <?PHP
  2. //Initialisation de la variables $infos
  3. $infos = '';
  4. //Initialisation des variables du formulaire (mise à '' si elles sont vides)
  5. empty($_POST['pseudo']) ? $pseudo = '' : $pseudo = $_POST['pseudo'];
  6. empty($_POST['titre']) ? $titre = '' : $titre = $_POST['titre'];
  7. //Vérification du pseudo et du titre
  8. if ($titre == '') $infos .= "- Vous devez définir un titre!<br>n";
  9. if ($pseudo == '') $infos .= "- Vous devez entrer votre pseudo!<br>n";
  10. //Pour savoir si le fichier a été uploadé, on vérifie que le fichier est bien dans le tableau des fichiers
  11. if (!empty($_FILES['fichier1']['size'])){
  12. //On récupère la taille, le nom et le nom du fichier temporaire
  13. $f1_size = $_FILES['fichier1']['size'];
  14. $f1_name = $_FILES['fichier1']['name'];
  15. $f1_tmpname = $_FILES['fichier1']['tmp_name'];
  16. //Récupération de l'extension du fichier (on prend ce qui suit le dernier point et on le met en minuscule
  17. $ext = strtolower(substr($f1_name,strrpos($f1_name, "." )+1));
  18. //Création du tableau des extensions acceptées
  19. $valides = array("bmp","jpg","gif","png","tif","wbmp" );
  20. //On vérifie la taille et le type de fichier
  21. if ($f1_size > 1000000) $infos .= "- Le fichier est trop volumineux!<br>n";
  22. if (!in_array($ext,$valides)) $infos .= "- Ce type de fichier n'est pas accepté!<br>n";
  23. //Si tout est bon (aucune erreur dans $infos), on déplace le fichier
  24. $var="meteo";
  25. $nom_final = $var.$f1_name;
  26. move_uploaded_file($f1_tmpname, "./{$nom_final}" ) or $infos .= "- Impossible d'enregistrer le fichier, contacter le webmaster!<br>n";
  27. $source = imagecreatefromjpeg($nom_final); // La photo est la source  
  28. $destination = imagecreatetruecolor(200, 150); // On crée la miniature vide  
  29. // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image  
  30. $largeur_source = imagesx($source);
  31. $hauteur_source = imagesy($source);
  32. $largeur_destination = imagesx($destination);
  33. $hauteur_destination = imagesy($destination);
  34. // On crée la miniature  
  35. imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
  36. // On enregistre la miniature sous le nom "mini_couchersoleil.jpg"  
  37. imagejpeg($destination, 'mini_'.$nom_final);
  38. if ($infos == ''){
  39.   $res = mysql_connect('','','');
  40.   mysql_select_db('',$res);
  41.   $add = mysql_query("INSERT INTO matable VALUES ('','{$titre}','{$pseudo}','{$f1_name}',{$f1_size});" );
  42. }
  43. }else $infos .= "- Vous devez sélectionner un fichier à uploader!<br>n";
  44. //Si le formulaire n'a pas encore été validé, on n'affiche pas les erreurs
  45. if (empty($_POST['MAX_FILE_SIZE'])) $infos = '';
  46. //Si il y a eu une erreur ou si le formulaire n'a pas encore été validé (Facile à savoir, tant que le formulaire n'est pas validé, MAX_FILE_SIZE est vide), on l'affiche
  47. if ($infos != '' || empty($_POST['MAX_FILE_SIZE'])):
  48. //Affichage des informations d'erreur au début du formulaire
  49. ?>
  50. <span style="color:red"><?PHP echo $infos; ?></span><br>
  51. <form name="envoie" method="post" action="envoie.php" enctype="multipart/form-data">
  52. Pseudo: <input type="text" name="pseudo" size="30" maxlength="30" value="<?PHP echo $pseudo; ?>"><br>
  53. Titre du fichier: <input type="text" name="titre" size=30 maxlength=50 value="<?PHP echo $titre; ?>"><br>
  54. <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
  55. Fichier: <input type="file" name="fichier1"><br>
  56. <input type="submit" value="Envoyer!">
  57. </form>
  58. <?PHP ENDif;
  59. if ($infos == '' && !empty($_POST['MAX_FILE_SIZE'])){
  60. ?>
  61. BRAVO, transfer réussi!
  62. <?PHP } ?>


 
 
Maintenant je n'arrive pas a faire en sorte d'afficher 20 miniatures par page et que lorsque je clique dessus ca m'affiche l'image en grand .
 
Quelqu'un peut il m'aider ?


---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 25-07-2005 à 21:12:20    

bon j'ai fait ca:
 

Code :
  1. <?php
  2. mysql_connect('localhost','','');
  3. mysql_select_db('');
  4. $donnee = mysql_query("SELECT name FROM uploads LIMIT 0,20" );
  5. mysql_close();
  6. while($name = mysql_fetch_array($donnee)){
  7. echo '<a href="'.$name.'"> <img src="mini_'.$name.'" /></a>';
  8. }
  9. ?>


 
et j'ai cette erreur:
 

Code :
  1. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/upload/envoie2.php on line 6


 
et voilà ma table:
 

Code :
  1. CREATE TABLE `uploads` (
  2. `id` int(5) NOT NULL auto_increment,
  3. `titre` varchar(100) collate latin1_german1_ci NOT NULL default '',
  4. `pseudo` varchar(50) collate latin1_german1_ci NOT NULL default '',
  5. `name` varchar(50) collate latin1_german1_ci NOT NULL default '',
  6. `size` int(11) NOT NULL default '0',
  7. UNIQUE KEY `titre` (`titre`,`name`),
  8. KEY `id` (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci AUTO_INCREMENT=19;


---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 25-07-2005 à 21:23:53    

mysql_query(...) or die(mysql_error())


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 25-07-2005 à 21:23:53   

Reply

Marsh Posté le 25-07-2005 à 21:27:13    

je comprend pas .
Désolé


---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 25-07-2005 à 21:28:56    

Ben tu rajoutes or die(mysql_error()) après ton mysql_query, comme ça le truc te sortira l'erreur dans ta requête.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 25-07-2005 à 21:32:25    

bon alors j'ai ca maintenant
 

Code :
  1. <?php
  2. mysql_connect('xxx','xxx','xxx');
  3. mysql_select_db('matable');
  4. $donnee = mysql_query("SELECT name FROM uploads LIMIT 0,20" );
  5. or die(mysql_error())
  6. mysql_close();
  7. $name = mysql_fetch_array($donnee);
  8. {
  9. echo '<a href="'.$name.'"> <img src="mini_'.$name.'" /></a>';
  10. }
  11. ?>


 
 
et ca me met cette erreur
 
Parse error: parse error, unexpected T_LOGICAL_OR in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/upload/envoie2.php on line 5


---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 25-07-2005 à 21:38:45    

Arg. J'pensais que tout le monde avait déjà rencontré cette syntaxe. -_-
 

Code :
  1. $donnee = mysql_query("SELECT name FROM uploads LIMIT 0,20" ) or die(mysql_error());


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 25-07-2005 à 21:49:45    

maintenant j'ai donc ca:
 

Code :
  1. <?php
  2. mysql_connect('','','');
  3. mysql_select_db('mameteo');
  4. $donnee = mysql_query("SELECT name FROM uploads LIMIT 0,20" ) or die(mysql_error());
  5. mysql_close();
  6. $name = mysql_fetch_array($donnee);
  7. {
  8. echo '<a href="'.$name.'"> <img src="mini_'.$name.'" /></a>';
  9. }
  10. ?>


 
 
et ca m'affiche ca
 
No database selected


Message édité par wydook le 25-07-2005 à 21:50:15

---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 25-07-2005 à 21:57:23    

Et pourquoi ce mysql_close en plein milieu? Est-il vraiment nécessaire??

Reply

Marsh Posté le 25-07-2005 à 21:58:23    

je vient d'essayer sans , et ca me met la meme erreur


---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 25-07-2005 à 22:06:55    

mysql_connect('','','') or die(mysql_error())
mysql_select_db('mameteo') or die(mysql_error())


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 25-07-2005 à 22:11:35    

ben ca veut pas . arfff


---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 25-07-2005 à 22:13:28    

Et sinon qu'en est-il par rapport au paysage ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 25-07-2005 à 22:33:30    

bon alors j'ai ca a l'heure actuelle
 

Code :
  1. <?php
  2. $base = mysql_connect ('localhost', '', '');
  3.     mysql_select_db('', $base);
  4. $donnee = mysql_query("SELECT name FROM uploads ORDER BY id  desc LIMIT 0, 30" ) or die(mysql_error());
  5. mysql_close();
  6. $name = mysql_fetch_array($donnee);
  7. {
  8. echo '<a href="'.$name.'"> <img src="mini_'.$name.'" /></a>';
  9. }
  10. ?>


 
 
et ca me donne ca http://www.meteo-world.com/upload/envoie2.php
 
je precise que j'ai deja uploder des photos


---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 25-07-2005 à 22:40:03    

Ben elle est où l'erreur No database selected ?
 
Sinon $name est un tableau, donc forcément le lien de l'image est mauvais.
www.php.net/mysql_fetch_array


Message édité par sielfried le 25-07-2005 à 22:40:16

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 25-07-2005 à 22:44:44    

l'erreur database n'y et plus , je l'ai corrigé. Je m'etais tromper dans le nom de la base. mdrr
 
maintenant j'ai ce probleme de lien.


Message édité par wydook le 25-07-2005 à 22:45:03

---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le 25-07-2005 à 23:21:29    

wydook a écrit :

l'erreur database n'y et plus , je l'ai corrigé. Je m'etais tromper dans le nom de la base. mdrr
 
maintenant j'ai ce probleme de lien.


 
 :pfff: a la la la la et nous on cherche :)
 
C'est quoi ce pb de liens??
 
 [:magnasuprema]

Reply

Marsh Posté le 26-07-2005 à 07:39:48    

réglé je pense.
 
Merci a vous


Message édité par wydook le 26-07-2005 à 08:15:18

---------------
Toute l'actualité météo en continu http://www.meteo-world.com
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed