par
Patriboom » 08 févr. 2013, 21:14
Bonjour,
les usagers d'IE qui utilisent mon site ne peuvent pas télécharger d'image tandis que les usagers d'autres navigateurs le peuvent. Pourquoi?
Voici mon code formulaire
<form name="Questionne" action="index.php?mod=<?php echo $_GET["mod"].'&fct='.$_GET["fct"]; ?>" method="POST" enctype="multipart/form-data">
<input name="Confirmer" type="checkbox" value="Confirmer" />J`ai lu et j`accepte les conditions.
<br />
<input name="NOUV_IMAGE" type="file" accept="image/jpg,image/gif,image/png" />
<input type="hidden" name="MAX_FILE_SIZE" value="200000" />
//Ici, il y a les boutons, blabla et d'autres champs INPUT, peu importe, puisque ça fonctionne avec les navigateurs non-IE
</form>
Voici mon code d'interprétation
echo Telechargement ($_FILES["NOUV_IMAGE"], "images/Membres/Profil", "Profil", 150, 200, "Vert", $NumMbre);
function Telechargement ($CetteImage, $destination_dir = "images/Membres/Profil", $NomFinal = "Profil", $LargeurFinale = 150, $HauteurFinale = 200, $Sens = "Horiz", $NumMbre) {
$file_max_size = 2000000;
if (isset($CetteImage) && isset($_POST["Confirmer"]) && is_array($CetteImage)) {
if ($CetteImage['error'] == UPLOAD_ERR_OK) {
if($CetteImage['size'] > 0 && $CetteImage["size"] <= $file_max_size) {
// $authorized_extensions = array('image/jpeg', 'image/gif', 'image/png');
$authorized_extensions = array('image/jpeg');
if (!is_dir($destination_dir)) {
echo 'Veuillez indiquer un répertoire destination correct !';
die();
}
if (!is_writeable($destination_dir)) {
echo 'Veuillez spécifier des droits en écriture pour le répertoire destination !';
die();
}
$lastPos = strRChr($CetteImage['name'], ".");
if ($lastPos !== false && in_array(strToLower($CetteImage['type']), $authorized_extensions)) {
$TypeRecu = substr($CetteImage['name'], strpos($CetteImage['name'], '.'));
$destination_file = $NumMbre.'_'.$NomFinal.strtolower($TypeRecu);
//Nouvelle image au format de la version finale
$ImgPetite = imagecreatetruecolor($LargeurFinale, $HauteurFinale);
$ImgSource = imagecreatefromjpeg($CetteImage['tmp_name']);
$TailleInitiale = getimagesize($CetteImage['tmp_name']);
// Redimensionnement
imagecopyresized($ImgPetite, $ImgSource, 0, 0, 0, 0, $LargeurFinale, $HauteurFinale, $TailleInitiale[0], $TailleInitiale[1]);
//Rotation si necessaire
if ( ($Sens == "Vert" && $TailleInitiale[0] > $TailleInitiale[1]) || ($Sens == "Horiz" && $TailleInitiale[0] < $TailleInitiale[1]) ) {
imagerotate ($ImgPetite, 270, 0);
}
imagejpeg($ImgPetite, $destination_dir.DIRECTORY_SEPARATOR.$destination_file);
return true;
} else { echo 'Mauvais format de fichier<br>'; }
} else { echo 'Fichier trop grand ou inexistant.<br>'; }
} else {
switch ($CetteImage['aFile']['error']){
case UPLOAD_ERR_INI_SIZE:
echo 'Le fichier Téléchargé dépasse la valeur spécifiée pour upload_max_filesize dans php.ini.';
break;
case UPLOAD_ERR_FORM_SIZE:
echo 'Le fichier téléchargé dépasse la valeur spécifiée pour MAX_FILE_SIZE dans le formulaire d\'upload.';
break;
case UPLOAD_ERR_PARTIAL:
echo 'Le fichier n`a été que partiellement téléchargé.';
break;
default:
echo 'Aucun fichier n`a été téléchargé.';
} // switch
return false;
}
} else { // aucun fichier reçu
echo 'Pas de fichier recu';
return false;
}
//Fin du traitement relatif a l'ajout d'image
}
Merci
Bonjour,
les usagers d'IE qui utilisent mon site ne peuvent pas télécharger d'image tandis que les usagers d'autres navigateurs le peuvent. Pourquoi?
Voici mon code formulaire
[html]
<form name="Questionne" action="index.php?mod=<?php echo $_GET["mod"].'&fct='.$_GET["fct"]; ?>" method="POST" enctype="multipart/form-data">
<input name="Confirmer" type="checkbox" value="Confirmer" />J`ai lu et j`accepte les conditions.
<br />
<input name="NOUV_IMAGE" type="file" accept="image/jpg,image/gif,image/png" />
<input type="hidden" name="MAX_FILE_SIZE" value="200000" />
//Ici, il y a les boutons, blabla et d'autres champs INPUT, peu importe, puisque ça fonctionne avec les navigateurs non-IE
</form>
[/html]
Voici mon code d'interprétation
[php]
echo Telechargement ($_FILES["NOUV_IMAGE"], "images/Membres/Profil", "Profil", 150, 200, "Vert", $NumMbre);
function Telechargement ($CetteImage, $destination_dir = "images/Membres/Profil", $NomFinal = "Profil", $LargeurFinale = 150, $HauteurFinale = 200, $Sens = "Horiz", $NumMbre) {
$file_max_size = 2000000;
if (isset($CetteImage) && isset($_POST["Confirmer"]) && is_array($CetteImage)) {
if ($CetteImage['error'] == UPLOAD_ERR_OK) {
if($CetteImage['size'] > 0 && $CetteImage["size"] <= $file_max_size) {
// $authorized_extensions = array('image/jpeg', 'image/gif', 'image/png');
$authorized_extensions = array('image/jpeg');
if (!is_dir($destination_dir)) {
echo 'Veuillez indiquer un répertoire destination correct !';
die();
}
if (!is_writeable($destination_dir)) {
echo 'Veuillez spécifier des droits en écriture pour le répertoire destination !';
die();
}
$lastPos = strRChr($CetteImage['name'], ".");
if ($lastPos !== false && in_array(strToLower($CetteImage['type']), $authorized_extensions)) {
$TypeRecu = substr($CetteImage['name'], strpos($CetteImage['name'], '.'));
$destination_file = $NumMbre.'_'.$NomFinal.strtolower($TypeRecu);
//Nouvelle image au format de la version finale
$ImgPetite = imagecreatetruecolor($LargeurFinale, $HauteurFinale);
$ImgSource = imagecreatefromjpeg($CetteImage['tmp_name']);
$TailleInitiale = getimagesize($CetteImage['tmp_name']);
// Redimensionnement
imagecopyresized($ImgPetite, $ImgSource, 0, 0, 0, 0, $LargeurFinale, $HauteurFinale, $TailleInitiale[0], $TailleInitiale[1]);
//Rotation si necessaire
if ( ($Sens == "Vert" && $TailleInitiale[0] > $TailleInitiale[1]) || ($Sens == "Horiz" && $TailleInitiale[0] < $TailleInitiale[1]) ) {
imagerotate ($ImgPetite, 270, 0);
}
imagejpeg($ImgPetite, $destination_dir.DIRECTORY_SEPARATOR.$destination_file);
return true;
} else { echo 'Mauvais format de fichier<br>'; }
} else { echo 'Fichier trop grand ou inexistant.<br>'; }
} else {
switch ($CetteImage['aFile']['error']){
case UPLOAD_ERR_INI_SIZE:
echo 'Le fichier Téléchargé dépasse la valeur spécifiée pour upload_max_filesize dans php.ini.';
break;
case UPLOAD_ERR_FORM_SIZE:
echo 'Le fichier téléchargé dépasse la valeur spécifiée pour MAX_FILE_SIZE dans le formulaire d\'upload.';
break;
case UPLOAD_ERR_PARTIAL:
echo 'Le fichier n`a été que partiellement téléchargé.';
break;
default:
echo 'Aucun fichier n`a été téléchargé.';
} // switch
return false;
}
} else { // aucun fichier reçu
echo 'Pas de fichier recu';
return false;
}
//Fin du traitement relatif a l'ajout d'image
}
[/php]
Merci