Aller au contenu

Sujets conseillés

Posté

Bonsoir,

je viens d'essayer de rajouter dans le code getimagesize.

	<?php

include("images.class.php");

$images = new images();
$images->repertoire = "collectif";
$images->nb_par_ligne = 1;
$images->afficher_liste();
$size = GetImageSize($image);
$src_w = $size[150];

?>

L'image apparait mais en taille réelle avec ce message d'erreur

Warning: getimagesize: Unable to open '' for reading. in /home/archit/www/collectif.php on line 40

Ou peut se trouver le problème

Merci d'avance

Posté

Bonjour,

Tout simplement parce que la fonction GetImageSize attend un argument de type "string" (nom de fichier) qui ne semble pas être le type de $image.

Dan

Posté

Bonsoir,

J'envoie le code du fichier images.class.php si cela peut aider

<?php

class images {

var $repertoire;
var $nb_par_ligne;

function ajouter_image($image,$nom) {
if (is_dir($this->repertoire)) {
if (copy($image, $this->repertoire . "/" . $nom)) return true;
else return false;
} else return false;
}

function lister_repertoire() {
$liste = array();
if (is_dir($this->repertoire)) {
if ($pointeur = opendir($this->repertoire)) {
while (($fichier = readdir($pointeur)) !== false) {
if (!is_dir($this->repertoirte . "/" . $fichier)) {
$liste[] = $fichier;
}
}
closedir($pointeur);
return $liste;
} else return false;
} else return false;
}

function liste_select() {
$liste = $this->lister_repertoire();
for ($i = 0; $i < count($liste); $i++) {
echo " <option value=\"$this->repertoire/$liste[$i]\">$liste[$i]</option>\n";
}
}

function afficher_liste() {
$liste = $this->lister_repertoire();
echo "<table summary=\"table d'images\">\n";
for ($i = 0; $i < count($liste); $i++) {
$nom = explode(".", $liste[$i]);
$nom = str_replace("_", " ", $nom[0]);
$nom = str_replace("-", " ", $nom);
$nom = strtoupper(substr($nom, 0, 1)) . substr($nom, 1);
if (round($i/$this->nb_par_ligne) == ($i/$this->nb_par_ligne)) echo " <tr>\n";
echo " <td align=\"center\">" . $this->afficher_image($liste[$i]) . "<br></td>\n";
if (round(($i+1)/$this->nb_par_ligne) == (($i+1)/$this->nb_par_ligne) || ($i+2) > count($liste)) echo " </tr>\n";
}
echo "</table>\n";
}

function afficher_image($fichier) {
return "<img src=\"" . $this->repertoire . "/" . $fichier . "\" alt=\"" . $fichier . " - " . round((filesize($this->repertoire. "/" . $fichier)/1024), 2) . " ko\">";
}

}

?>

Merci d'avance pour l'aide

Posté

Ce n'est pas ce fichier qui ne marche pas, mais :

/home/archit/www/collectif.php

Si tu pouvais poster les 40-50 premières lignes ;)

Nico.

Posté

voici tout ,le fichier

<html>
<head>
<title></title>
<script>
<!--

var win=null;
function NewWindow(mypage,myname,w,h,pos,infocus){
if(pos=="random"){myleft=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;mytop=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
if(pos=="center"){myleft=(screen.width)?(screen.width-w)/2:100;mytop=(screen.height)?(screen.height-h)/2:100;}
else if((pos!='center' && pos!="random") || pos==null){myleft=10;mytop=20}
settings="width=" + w + ",height=350" + h + ",top=" + mytop + ",left=" + myleft + ",scrollbars=yes,location=no,directories=no,status=,menubar=no,toolbar=no,res
zable=no";win=window.open(mypage,myname,settings);
win.focus();}
// -->
</script>
</head>

<BODY bgcolor="#9f9999" text=#000000  leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">
<TABLE cellSpacing=0 cellPadding=0 width=608 border=0 align=center>
                         <TBODY>
                         <TR>
                           <TD align=center><STRONG><FONT
                             face="Arial, Helvetica, sans-serif" size=3><u>Immeubles collectifs</u></FONT></STRONG><br><br></TD></TR></TBODY></TR>
                   <TR>
                     <TD valign=top>
                       <TABLE cellSpacing=0 cellPadding=0 width="530" border=0>

                         <TR>

                           <tr>
      <td width=250><a href="javascript:NewWindow('exemple7.html','350','500','custom','front');">
 <?php

include("images.class.php");

$images = collectif images();
$images->repertoire = "collectif";
$images->nb_par_ligne = 1;
$images->afficher_liste();
$size = GetImageSize($image);
$src_w = $size[150];

?>
 </a><br><br>
 <FONT face="Arial, Helvetica, sans-serif"
                             size=2>Mettez ici le texte explicatif pour la photo
                         </FONT><br><br>
        </TD>
               </TR></TABLE>
</body>

</html>

Posté

lol, en fait dans ton programme tu dois avoir un truc du genre :

function collectif images() {

...

}

Il faudrait que tu la recopies ici ;)

Sarc

Posté

Non, une fonction 'en 2 mots' ne peut pas marcher.

Reste à savoir comment elle s'écrit réellement, d'où le :

Il faudrait que tu la recopies ici ;)

Posté

Donc comme ça:

<?php

include("images.class.php");

function collectif images() {
$images = collectif images();
$images->repertoire = "collectif";
$images->nb_par_ligne = 1;
$images->afficher_liste();
$size = GetImageSize($image);
$src_w = $size[150];
}

?>

Posté

On va y arriver :D

On recommence :

Dans ton code, tu as un truc bizarre qui est ceci -> function collectif images()

En php, une fonction ne peut pas avoir un nom comportant un ' ' (espace).

Donc colle nous ton code au complet :)

A bientot

Portekoi

Posté

Désolé mais tout le code permettant de faire apparaitre l'image est là ainsi que sur le premier message tout le code complet de la page

Je ne voit vraiment pas quoi rajouter :blush:

Posté

tu peux nous poster le fichier : images.class.php

stp ?

merci.

Posté

Sans problèmes:

<?php

class images {

var $repertoire;
var $nb_par_ligne;

function ajouter_image($image,$nom) {
if (is_dir($this->repertoire)) {
  if (copy($image, $this->repertoire . "/" . $nom)) return true;
   else return false;
 } else return false;
}

function lister_repertoire() {
 $liste = array();
 if (is_dir($this->repertoire)) {
   if ($pointeur = opendir($this->repertoire)) {
     while (($fichier = readdir($pointeur)) !== false) {
       if (!is_dir($this->repertoirte . "/" . $fichier)) {
         $liste[] = $fichier;
       }
     }
     closedir($pointeur);
     return $liste;
   } else return false;
 } else return false;
}

function liste_select() {
 $liste = $this->lister_repertoire();
 for ($i = 0; $i < count($liste); $i++) {
   echo "  <option value=\"$this->repertoire/$liste[$i]\">$liste[$i]</option>\n";
 }
}

function afficher_liste() {
 $liste = $this->lister_repertoire();
 echo "<table summary=\"table d'images\">\n";
 for ($i = 0; $i < count($liste); $i++) {
   $nom = explode(".", $liste[$i]);
   $nom = str_replace("_", " ", $nom[0]);
   $nom = str_replace("-", " ", $nom);
   $nom = strtoupper(substr($nom, 0, 1)) . substr($nom, 1);
   if (round($i/$this->nb_par_ligne) == ($i/$this->nb_par_ligne)) echo "  <tr>\n";
   echo "    <td align=\"center\">" . $this->afficher_image($liste[$i]) . "<br></td>\n";
   if (round(($i+1)/$this->nb_par_ligne) == (($i+1)/$this->nb_par_ligne) || ($i+2) > count($liste)) echo "  </tr>\n";
 }
 echo "</table>\n";
}

function afficher_image($fichier) {
 return "<img src=\"" . $this->repertoire . "/" . $fichier . "\" alt=\"" . $fichier . " - " . round((filesize($this->repertoire. "/" . $fichier)/1024), 2) . " ko\">";
}

}

?>

Posté

j'ais modifié le script

<?php

include("images.class.php");

$images = new images();
$images->repertoire = "collectif";
$images->nb_par_ligne = 1;
$images->afficher_liste();
$size = GetImageSize($image);
$src_w = $size[150];

?>

mais le message d'erreur est tjrs là. Je ne pensais pas que c'était tellement compliqué de redimenssionner une image qu'on transfère.

Posté

Bon mojosi, on est revenu à la bonne syntaxe :)

Le code que tu as reposté ci-dessus à l'air ok, faut chercher ailleurs...

Posté

Apparemment, c'est un problème de chemin, ou de nom de fichier, ou de droit...

As tu bien un fichier qui s'appelle /home/archit/www/collectif.php ?

c'est à dire un fichier collectif.php à l'emplacement /home/archit/www/ ?

Posté

Apparemment, le programme a besoin d'un répertoire pour y chercher des images à redimensionner

Le répertoire attendu est un truc du genre /home/archit/www/collectif/

Ce répertoire existe-t'il ?

Posté

Le fichier existe les droits sont mis et voici les messages d'erreurs sur la page

Fatal error: Cannot redeclare class images in /home/archit/www/images.class.php on line

Warning: getimagesize: Unable to open '' for reading. in /home/archit/www/collectif.php on line 40

et voici la ligne 40

$size = GetImageSize($image);

je suis perdu

Posté

si ça peut aider, pour transférer les images, j'utilise également un fichier admin_images.php

<?php

include("images.class.php");

function getextension($fichier) {
 $bouts = explode(".", $fichier);
 $extension = array_pop($bouts);
 return $extension;
}

if ($_POST['action'] == "ajouter") {
 if ($image && !empty($_POST['repertoire']) && !empty($_POST['mot_de_passe'])){
   if ($_POST['mot_de_passe'] == "####") {
     if ($_POST['repertoire'] == "collectif" || $_POST['repertoire'] == "individuelle" || $_POST['repertoire'] == "accueil" ||$_POST['repertoire'] == "etude" ||$_POST['repertoire'] == "renovation" ||$_POST['repertoire'] == "entreprise") {
       $repertoire = $_POST['repertoire'];
       $extension = strtolower(getextension($image_name));
       if ($extension == "jpg" || $extension == "png" || $extension == "bmp" || $extension == "gif") {
         $imag = new images();
         $imag->repertoire = $repertoire;
         if ($imag->ajouter_image($image, $image_name)) echo "<font face=\"Verdana\">Le fichier " . $image_name . " a bien été envoyé.</font>";
         else echo "<font face=\"Verdana\">Une erreur s'est produite !</font>";
       } else echo "<font face=\"Verdana\">Extension interdite !</font>";
     } else echo "<font face=\"Verdana\">Repertoire interdit !</font>";
   } else echo "<font face=\"Verdana\">Mot de passe incorrect !</font>";
 } else echo "<font face=\"Verdana\">Formulaire incomplet !</font>";
} else if ($_POST['action'] == "supprimer") {
 if (!empty($_POST['image']) && !empty($_POST['mot_de_passe'])) {
   if ($_POST['mot_de_passe'] == "style67") {
     $extension = strtolower(getextension($image));
     if ($extension == "jpg" || $extension == "png" || $extension == "bmp" || $extension == "gif" || $extension == "jpeg") {
       if (@unlink($image)) echo "<font face=\"Verdana\">L'image <b>$image</b> a bien été suprimé !</font>";
       else echo "<font face=\"Verdana\">Une erreur s'est produite !</font>";
     } else echo "<font face=\"Verdana\">Extension interdite !</font>";
   } else echo "<font face=\"Verdana\">Mot de passe incorrect !</font>";
 } else echo "<font face=\"Verdana\">Formulaire incomplet !</font>";
}

?>
<html>
<body>

<form action="admin_images.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="action" value="ajouter">
<table>
<tr>
<td><font face="Verdana">Repertoire de destination :</font></td>
<td><select name="repertoire">
<option></option>
<option value="collectif">collectif</option>
<option value="individuelle">individuelle</option>
<option value="accueil">accueil</option>
<option value="etude">etude</option>
<option value="renovation">renovation</option>
<option value="entreprise">entreprise</option>


</select></td>
</tr>
<tr>
<td><font face="Verdana">Fichier à envoyer :</font></td>
<td><input type="file" name="image"></td>
</tr>
<tr>
<td><font face="Verdana">Mot de passe :</font></td>
<td><input type="password" name="mot_de_passe"></td>
</tr>
<tr>
<td><input type="submit" value="Envoyer image"></td>
</tr>
</table>
</form>

<hr>

<form action="admin_images.php" method="post">
<input type="hidden" name="action" value="supprimer">
<table>
<tr>
<td><font face="Verdana">Image à supprimer :</font></td>
<td><select name="image">
<option></option>
<option value="">+++ collectif +++</option>
<?php

$images1 = new images();
$images1->repertoire = "collectif";
$images1->liste_select();

?>
<option value="">+++ individuelle +++</option>
<?php

$images2 = new images();
$images2->repertoire = "individuelle";
$images2->liste_select();

?>
<option value="">+++ accueil +++</option>
<?php

$images3 = new images();
$images3->repertoire = "accueil";
$images3->liste_select();

?>

<option value="">+++ etude +++</option>
<?php

$images4 = new images();
$images4->repertoire = "etude";
$images4->liste_select();

?>

<option value="">+++ renovation +++</option>
<?php

$images5 = new images();
$images5->repertoire = "renovation";
$images5->liste_select();

?>

<option value="">+++ entreprise +++</option>
<?php

$images6 = new images();
$images6->repertoire = "entreprise";
$images6->liste_select();

?>

</select></td>
</tr>
<tr>
<td><font face="Verdana">Mot de passe :</font></td>
<td><input type="password" name="mot_de_passe"></td>
</tr>
<tr>
<td><input type="submit" value="Supprimer l'image !" style="color: #FF0000;"></td>
</tr>
</table>
</form>


</body>
</html><tr>
<td><font face="Verdana">Mot de passe :</font></td>
<td><input type="password" name="mot_de_passe"></td>
</tr>
<tr>
<td><input type="submit" value="Supprimer l'image !" style="color: #FF0000;"></td>
</tr>
</table>
</form>


</body>
</html>

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...