Echec de redimensionnement d'une image

Résolu/Fermé
nimed Messages postés 5 Date d'inscription vendredi 12 décembre 2008 Statut Membre Dernière intervention 8 mai 2014 - 8 mai 2014 à 16:35
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 8 mai 2014 à 22:16
Bonjour à tous je rencontre un problème lors du redimensionnement des images uploadés.
voici le code de mon travail. En fait j'ai deux dossiers "files" pour les images redimensionnées et "uploads" pour les images tétéchargées.
<?php
function traiterfichier($inputfichier, $time){
//Ce script Copie dans le repertoire "uploads" avec un nom
// incluant l'heure a la seconde pres
$repertoireDestination = dirname(__FILE__)."/uploads/";
$extensionsAutorisees = array(".jpeg", ".jpg", ".gif", ".png", ".bmp");
//$extensionsAutorisees = array(".gif", ".png", ".bmp");

if (is_uploaded_file($_FILES["".$inputfichier.""]["tmp_name"])){ //chargement du fichier
$extension1 = strrchr($_FILES["".$inputfichier.""]["name"], '.'); //extension du fichier

if (!(in_array($extension1, $extensionsAutorisees))) {// //vérification de l'extension
//echo "Le fichier n'a pas l'extension attendue"; /* *///
return 1; //pour extension non autorisee

} else{//

$nomDestination = "$time"."$extension1";

if (@move_uploaded_file($_FILES["".$inputfichier.""]["tmp_name"],
$repertoireDestination.$nomDestination)){
/* echo "Le fichier temporaire ".$_FILES["".$inputfichier.""]["tmp_name"].
" a été déplacé vers ".$repertoireDestination.$nomDestination; */
return $nomDestination; //Pr Tranfert reussi

} else {
//echo "Le déplacement du fichier temporaire a échoué".
// " vérifiez l'existence du répertoire ".$repertoireDestination;
return 2; //pour transfert non reussi
}
}//
} else {
/* echo "Le fichier n'a pas été uploadé (trop gros ?)"; */
return 3; //pour fichier trop lourd
}
}
function fctredimimage($W_max, $H_max, $rep_Dst, $img_Dst, $rep_Src, $img_Src) {
$condition = 0;
// Si certains paramètres ont pour valeur '' :
if ($rep_Dst=='') { $rep_Dst = $rep_Src; } // (même répertoire)
if ($img_Dst=='') { $img_Dst = $img_Src; } // (même nom)
// ---------------------
// si le fichier existe dans le répertoire, on continue...
if (file_exists($rep_Src.$img_Src) && ($W_max!=0 || $H_max!=0)) {
// ----------------------
// extensions acceptées :
$extension_Allowed = 'jpg,jpeg,png'; // (sans espaces)
// extension fichier Source
$extension_Src = strtolower(pathinfo($img_Src,PATHINFO_EXTENSION));
// ----------------------
// extension OK ? on continue ...
if(in_array($extension_Src, explode(',', $extension_Allowed))) {
// ------------------------
// récupération des dimensions de l'image Src
$img_size = getimagesize($rep_Src.$img_Src);
$W_Src = $img_size[0]; // largeur
$H_Src = $img_size[1]; // hauteur
// ------------------------------------------------
// condition de redimensionnement et dimensions de l'image finale
// ------------------------------------------------
// A- LARGEUR ET HAUTEUR maxi fixes
if ($W_max!=0 && $H_max!=0) {
$ratiox = $W_Src / $W_max; // ratio en largeur
$ratioy = $H_Src / $H_max; // ratio en hauteur
$ratio = max($ratiox,$ratioy); // le plus grand
$W = $W_Src/$ratio;
$H = $H_Src/$ratio;
$condition = ($W_Src>$W) || ($W_Src>$H); // 1 si vrai (true)
}
// ------------------------
// B- HAUTEUR maxi fixe
if ($W_max==0 && $H_max!=0) {
$H = $H_max;
$W = $H * ($W_Src / $H_Src);
$condition = ($H_Src > $H_max); // 1 si vrai (true)
}
// ------------------------
// C- LARGEUR maxi fixe
if ($W_max!=0 && $H_max==0) {
$W = $W_max;
$H = $W * ($H_Src / $W_Src);
$condition = ($W_Src > $W_max); // 1 si vrai (true)
}
// ------------------------------------------------
// REDIMENSIONNEMENT si la condition est vraie
// ------------------------------------------------
// - Si l'image Source est plus petite que les dimensions indiquées :
// Par defaut : PAS de redimensionnement.
// - Mais on peut "forcer" le redimensionnement en ajoutant ici :
// $condition = 1; (risque de perte de qualité)
if ($condition==1) {
// ---------------------
// creation de la ressource-image "Src" en fonction de l extension
switch($extension_Src) {
case 'jpg':
case 'jpeg':
$Ress_Src = imagecreatefromjpeg($rep_Src.$img_Src);
break;
case 'png':
$Ress_Src = imagecreatefrompng($rep_Src.$img_Src);
break;
}
// ---------------------
// creation d une ressource-image "Dst" aux dimensions finales
// fond noir (par defaut)
switch($extension_Src) {
case 'jpg':
case 'jpeg':
$Ress_Dst = imagecreatetruecolor($W,$H);
break;
case 'png':
$Ress_Dst = imagecreatetruecolor($W,$H);
// fond transparent (pour les png avec transparence)
imagesavealpha($Ress_Dst, true);
$trans_color = imagecolorallocatealpha($Ress_Dst, 0, 0, 0, 127);
imagefill($Ress_Dst, 0, 0, $trans_color);
break;
}
// ------------------------------------------------
// REDIMENSIONNEMENT (copie, redimensionne, re-echantillonne)
imagecopyresampled($Ress_Dst, $Ress_Src, 0, 0, 0, 0, $W, $H, $W_Src, $H_Src);
// ------------------------------------------------
// ENREGISTREMENT dans le repertoire (avec la fonction appropriee)
switch ($extension_Src) {
case 'jpg':
case 'jpeg':
imagejpeg ($Ress_Dst, $rep_Dst.$img_Dst);
break;
case 'png':
imagepng ($Ress_Dst, $rep_Dst.$img_Dst);
break;
}
// ------------------------
// liberation des ressources-image
imagedestroy ($Ress_Src);
imagedestroy ($Ress_Dst);
}
// ------------------------
}
} else{
$ok=impossible;
return $ok;
}
// ---------------------------------------------------
// retourne : true si le redimensionnement et l'enregistrement ont bien eu lieu, sinon false
if ($condition==1 && file_exists($rep_Dst.$img_Dst)) {
$ok=true;
return $ok; }
else { $ok=false;
return $ok; }
// ---------------------------------------------------
};
function auth_register() {
global $core_config;
$ok = false;
if ($core_config['main']['cfg_enable_register']) {
$username = trim($_REQUEST['username']);
$username = core_sanitize_username($username);
$prenom = trim($_REQUEST['prenom']);
$password1 = trim($_REQUEST['password1']);
$password2 = trim($_REQUEST['password2']);
$email = trim($_REQUEST['email']);
$name = trim($_REQUEST['name']);
$mobile = trim($_REQUEST['mobile']);
$time1 = time(); $time2 = $time1+1; $time3 = $time2+1; $time4 = $time3+1;
$rep1=traiterfichier(photo, $time1); if(($rep1==1)||($rep1==2)||($rep1==3));// $rep1="gg";//condition posee ds traiterfichier.php
$photo=$rep1;
$_SESSION['error_string'] = _('Echec d\'inscription');
$add['username']=$username;
$add['password']=$password1;
$add['email']=$email;
$add['mobile']=$mobile;
if ($add['email'] && $add['username'] && $add['mobile'] && $add['password']) {
$v = user_add_validate($add);
if ($v['status']) {
$continue = true;
}else {
$_SESSION['error_string'] = $v['error_string'];
}
}
if ($continue) {
if ($username && $password1 && $password2 && $email && $name && $mobile) {
$continue = true;

// check username
$db_query = "SELECT username FROM "._DB_PREF_."_tblUser WHERE username='$username'";
$db_result = dba_query($db_query);
if ($db_row = dba_fetch_array($db_result)) {
$_SESSION['error_string'] = _('Ce pseudo existe déjà')." ("._('username').": ".$username.")";
$continue = false;
}

// check email
if ($continue) {
$db_query = "SELECT username FROM "._DB_PREF_."_tblUser WHERE email='$email'";
$db_result = dba_query($db_query);
if ($db_row = dba_fetch_array($db_result)) {
$_SESSION['error_string'] = _('Ce pseudo existe déjà')." ("._('email').": ".$email.")";
$continue = false;
}
}

// check mobile
if ($continue) {
$db_query = "SELECT username FROM "._DB_PREF_."_tblUser WHERE mobile='$mobile'";
$db_result = dba_query($db_query);
if ($db_row = dba_fetch_array($db_result)) {
$_SESSION['error_string'] = _('Ce pseudo existe déjà')." ("._('mobile').": ".$mobile.")";
$continue = false;
}
}
if ($continue) {
$redimOK =fctredimimage(25,25,'files/',$photo,'uploads/',$photo);
if($redimOK == 1) {
$continue=true; }else{$continue=false;}
}
// check password
if ($continue) {
if ($password1 == $password2) {
$psw_verif = true;
}
else {
$psw_verif = false;
}
if ($psw_verif == true) {
$password_coded = md5($password1);
$footer = '@'.$username;
}else {
$_SESSION['error_string'] = _('Mots de passe non identiques')."";
$continue = false;
}
if ($continue) {
if (preg_match("/^(.+)(.+)\\.(.+)$/",$email,$arr)) {
// by default the status is 3 (normal user)
$dt = core_get_datetime();
$db_query = "
INSERT INTO "._DB_PREF_."_tblUser (status,username,password,name,mobile,email,footer,credit,register_datetime,lastupdate_datetime)
VALUES ('3','$username','$password_coded','$name','$mobile','$email','$footer','".$core_config['main']['cfg_default_credit']."','$dt','$dt')
";
if ($new_uid = @dba_insert_id($db_query)) {
$ok = true;

}
}
}
}

if ($ok) {
$statut=3;
$mail_verif=0;
$requete = "
INSERT INTO chat_accounts (account_login, account_pass, mail, prenom, nom, mail_verif,statut,mobile,photo)
VALUES ('$username','$password_coded','$email','$prenom','$name','$mail_verif','$statut','$mobile','$photo')
";
$res = mysql_query($requete);
if ($res==true){
$_SESSION['error_string'] = _('Ce pseudo existe déjà')." ("._('email').": ".$email.")";
$ok = true;
}
}
if ($ok) {
logger_print("u:".$username." email:".$email." ip:".$_SERVER['REMOTE_ADDR'], 2, "register");
$subject = _('New account registration');
$body = $core_config['main']['cfg_web_title']."\n";
$body .= $core_config['http_path']['base']."\n\n";
$body .= _('Username')."\t: $username\n";
$body .= _('password1')."\t: $password1\n\n";
$body .= $core_config['main']['cfg_email_footer']."\n\n";
$_SESSION['error_string'] = _('Inscription terminée avec succès')." ("._('pseudo').": ".$username.")";
$data = array(
'mail_from_name' => $core_config['main']['cfg_web_title'],
'mail_from' => $core_config['main']['cfg_email_service'],
'mail_to' => $email,
'mail_subject' => $subject,
'mail_body' => $body
);
if (sendmail($data)) {
$_SESSION['error_string'] .= _('Votre mot de passe vous a été envoyé');
} else {
$_SESSION['error_string'] .= _('Echec d\'envoi de mail');
}
}
}
}
} else {
$_SESSION['error_string'] = _('Inscription du public désactivé');
}
header("Location: ".$core_config['http_path']['base']);
exit();
}
?>
A voir également:

1 réponse

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
8 mai 2014 à 22:16
Bonjour,

Si tu nous disais quel est ton problème ?

Xavier
0