Aller au contenu

transfert d'image


mojosi

Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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>

Lien vers le commentaire
Partager sur d’autres sites

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

function collectif images() {

...

}

Il faudrait que tu la recopies ici ;)

Sarc

Lien vers le commentaire
Partager sur d’autres sites

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

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];
}

?>

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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:

Lien vers le commentaire
Partager sur d’autres sites

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\">";
}

}

?>

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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/ ?

Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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>

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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