J'ai un petit problème avec mon code qui permet de redimensionner des images uploadées grâce à un <input type="file">.
L'upload fonctionne très bien mais la fonction qui permet de redimensionner (trouvée ici : http://www.phpsources.org/scripts437-PHP.htm) n'a pas l'air encore complètement adaptée. Après plusieurs modifications vaines, j'ai toujours les messages d'erreur suivants :
Code : Tout sélectionner
Warning: getimagesize(photo20110422083219.jpg) [function.getimagesize]: failed to open stream: No such file or directory in C:\wamp\www\SMTK\admtool\edition\ajoutarticle.php on line 41
Warning: Division by zero in C:\wamp\www\SMTK\admtool\edition\ajoutarticle.php on line 48
Voici mon code :
<?php
require_once('../includes/connexion.php');
session_start();
if (!isset($_SESSION['login']))
{
exit();
}
include('../includes/header.php');
if (isset($_POST['submit']))
{
$idCat = $_POST["idCat"];
$titreArticle = htmlspecialchars($_POST["titreArticle"]);
$contenuArticle = htmlspecialchars($_POST["contenuArticle"]);
$photoArticle = $_FILES["photoArticle"];
$descPhoto = htmlspecialchars($_POST["descPhoto"]);
addslashes($contenuArticle) && addslashes($titreArticle) && addslashes($descPhoto);
if(!empty($idCat) && !empty($titreArticle) && !empty($contenuArticle) && !empty($photoArticle) && !empty($descPhoto))
{
//----------------------------------------------------------------------------------------------------------------
// TRAITEMENT DE L'IMAGE
//----------------------------------------------------------------------------------------------------------------
$nomOrigine = $_FILES['photoArticle']['name'];
$elementsChemin = pathinfo($nomOrigine);
$extensionFichier = $elementsChemin['extension'];
$extensionsAutorisees = array("jpeg", "jpg", "JPG", "JPEG", "GIF", "PNG", "gif", "png");
if (!(in_array($extensionFichier, $extensionsAutorisees)))
{
echo "Le fichier n'a pas l'extension attendue";
}
else
{
$repertoireDestination = "../../photos/";
$nomDestination = "photo".date("YmdHis").".".$extensionFichier;
$URLPhoto = ("http://localhost/smtk/photos/".$nomDestination);
function Resize_picture($fichier,$chemin,$maxWidth,$maxHeight)
{
# Passage des paramètres dans la table : imageinfo
$imageinfo= getimagesize("$fichier");
$iw=$imageinfo[0];
$ih=$imageinfo[1];
# Paramètres : Largeur et Hauteur souhaitées $maxWidth, $maxHeight
# Calcul des rapports de Largeur et de Hauteur
$widthscale = $iw/$maxWidth;
$heightscale = $ih/$maxHeight;
$rapport = $ih/$widthscale;
# Calul des rapports Largeur et Hauteur à afficher
if($rapport < $maxHeight)
{
$nwidth = $maxWidth;
}
else
{
$nwidth = $iw/$heightscale;
}
if($rapport < $maxHeight)
{
$nheight = $rapport;
}
else
{
$nheight = $maxHeight;
}
}
Resize_picture("$nomDestination","$repertoireDestination",400,270);
if (move_uploaded_file($_FILES['photoArticle']["tmp_name"], $repertoireDestination.$nomDestination))
{
// echo "Le fichier temporaire ".$_FILES['photoArticle']["tmp_name"].
// " a été déplacé vers ".$URLPhoto;
}
else
{
echo "Le fichier n\'a pas été uploadé ou ".
"Le déplacement du fichier temporaire a échoué".
" vérifiez l\'existence du répertoire ".$repertoireDestination;
}
}
//------------------------------------------------------------------------------
// REQUETE SQL D'AJOUT DANS LA BDD
//------------------------------------------------------------------------------
$req = 'INSERT INTO articles (idArticle, idCat, titreArticle, contenuArticle, photoArticle, descPhoto) VALUES ("", "'. $idCat .'", "'. $titreArticle .'" , "'. $contenuArticle .'","'. $URLPhoto .'", "'. $descPhoto .'");';
$result = mysql_query($req, $connexion) or die(mysql_error());
if ($result)
{
echo '<div class="valide"><p>L\'ajout a été correctement effectué.</p></div>' ;
}
else
{
echo '<div class="echec"><p> L\'ajout a échoué.</p></div>';
}
}
else echo '<div class="echec"><p> Vous n\'avez pas rempli tous les champs. </p></div>';
}
include('../includes/form_ajoutarticle.php');
include('../includes/footer.php');
mysql_close($connexion);
?>
Merci par avance à ceux qui se pencheront sur le problème.Pauline.