j'ai touvé un script d'upload , mon but est de creer une miniature et de redimensionner aussi l'image pour eviter qu'elle apparaisse trop grande en 400 px. je suis hebergé sur le serveur 1&1
Mon soucis est :en jpg l'upload ne s'effectu pas des lors la photo depasse 1280 px avec des echo j'ai pu remarquer que cela bloqué a la ligne
$fichier_source = imagecreatefromjpeg($fichier_dossier1.$fichier_n_nom);// definition de l'image dont on va faire une miniature
par contre en local je peux aller a des resolution plus grande
est ce un pb de time out?
<?php
//////////////////////////////////////////////////////////////////////////////////////// IMAGE ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$fichier_temp = $_FILES['fichier']['tmp_name'];
$fichier_nom = $_FILES['fichier']['name'];
list($fichier_larg, $fichier_haut, $fichier_type, $fichier_attr)=getimagesize($fichier_temp);// on défini les dimensions et le type du fichier
$fichier_poids_max = 2000000;// infos de contrôle du fichier
$fichier_h_max = 3000;
$fichier_l_max = 3000;
$fichier_dossier = 'mesminia/';// dossier de destination
$fichier_dossier1 = 'mesfichiers/';
$fichier_ext = substr($fichier_nom,strrpos( $fichier_nom, '.')+1);// extension du fichier
$fichier_date = date("dmyis");// on renomme le fichier
$ville=$_POST["ville"];
$fichier_n_nom = $cla.$ville.$fichier_date;
if (!empty($fichier_temp) && is_uploaded_file($fichier_temp)) {// on vérifie s'il y a bien un fichier à uploader
if (filesize($fichier_temp)<$fichier_poids_max) {// on vérifie le poids du fichier
if (($fichier_type===1) || ($fichier_type===2) || ($fichier_type===3)) {// types de fichiers autorises 1=gif / 2=jpg / 3=png
if (($fichier_larg<=$fichier_l_max) && ($fichier_haut<=$fichier_h_max)) {// on vérifie si l'image n'est pas trop grande
if (move_uploaded_file($fichier_temp, $fichier_dossier1.$fichier_n_nom)) {// si le fichier est ok, on l'upload sur le serveur
chmod ($fichier_dossier1.$fichier_n_nom, 0777);// on donne un acces total sur le fichier
/*///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
création de la miniature///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$taille_max = 80;// dimension maximale largeur et hauteur comprise
if (($fichier_larg > $taille_max) || ($fichier_haut > $taille_max)) {// si le fichier est plus grand que $taille_max on le miniaturise
if (($fichier_haut > $taille_max) && ($fichier_haut >> $fichier_larg)) {// définition des dimensions
$mini_haut = 80;
$mini_larg = 100;
}
else {
$mini_haut = $taille_max;
$mini_larg = 100;
}
//////////////////////////////////////////////////////////////////////////////////////////////////// // si le fichier est un .gif
if ($fichier_type === 1){
$fichier_source = imagecreatefromgif($fichier_dossier1.$fichier_n_nom);// definition de l'image dont on va faire une miniature
$fichier_reduit = imagecreate($mini_larg, $mini_haut);// on prépare le fichier miniature qui accueillera l'image réduite
$fond_blanc = imagecolorallocate($fichier_reduit, 255, 255, 255);// fond blanc pour l'image
$fichier_larg_red = imagesx($fichier_reduit);// dimensions x et y à donner au fichier
$fichier_haut_red = imagesy($fichier_reduit);
$nom_fichier_reduit1 = 'mini_'.$fichier_n_nom;// on rajoute un mini_ defant le nom du fichier
// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
imagecolortransparent($fichier_reduit, $fond_blanc);// on rend transparent le fond blanc
imagegif($fichier_reduit, $fichier_dossier.$nom_fichier_reduit1);// crée le fichier réduit définitif
chmod($fichier_dossier.$nom_fichier_reduit1, 0777);// on donne un acces total sur le fichier
}
//////////////////////////////////////////////////////////////////////////////////// / si le fichier est un .jpg / .jpeg
if ($fichier_type===2){
$qualite=80;// définition de la qualité
$fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_larg_red = imagesx($fichier_reduit);// dimensions x et y à donner au fichier
$fichier_haut_red = imagesy($fichier_reduit);
$fichier_source = imagecreatefromjpeg($fichier_dossier1.$fichier_n_nom);// definition de l'image dont on va faire une miniature
$nom_fichier_reduit1 = 'mini_'.$fichier_n_nom;// on rajoute un mini_ defant le nom du fichier
// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
imagejpeg($fichier_reduit, $fichier_dossier.$nom_fichier_reduit1, $qualite);// crée le fichier réduit définitif
chmod($fichier_dossier.$nom_fichier_reduit1, 0777);// on donne un acces total sur le fichier
}
/////////////////////////////////////////////////////////////////////////////////// ///////////// si le fichier est un .png
if ($fichier_type===3){
$fichier_source = imagecreatefrompng($fichier_dossier1.$fichier_n_nom);// definition de l'image dont on va faire une miniature
$fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_larg_red = imagesx($fichier_reduit);// dimensions x et y à donner au fichier
$fichier_haut_red = imagesy($fichier_reduit);
$nom_fichier_reduit1 = 'mini_'.$fichier_n_nom;// on rajoute un mini_ defant le nom du fichier
// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
imagepng($fichier_reduit, $fichier_dossier.$nom_fichier_reduit1);// crée le fichier réduit définitif
chmod($fichier_dossier.$nom_fichier_reduit1, 0777);// on donne un acces total sur le fichier
}
}
else {
$nom_fichier_reduit1 = $fichier_n_nom;// si le fichier est plus petit que $taille_max pas besoin de le miniaturiser
}
/*///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
création de la normal///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$taille_max = 400;// dimension maximale largeur et hauteur comprise
if (($fichier_larg > $taille_max) || ($fichier_haut > $taille_max)) {// si le fichier est plus grand que $taille_max on le miniaturise
if (($fichier_haut > $taille_max) && ($fichier_haut >> $fichier_larg)) {// définition des dimensions
$mini_haut = $fichier_haut / ($fichier_larg / $taille_max);
$mini_larg = $taille_max;
}
else {
$mini_haut = $taille_max;
$mini_larg = $fichier_larg / ($fichier_haut / $taille_max);
}
//////////////////////////////////////////////////////////////////////////////////////////////////// // si le fichier est un .gif
if ($fichier_type === 1){
$fichier_source = imagecreatefromgif($fichier_dossier1.$fichier_n_nom);// definition de l'image dont on va faire une miniature
$fichier_reduit = imagecreate($mini_larg, $mini_haut);// on prépare le fichier miniature qui accueillera l'image réduite
$fond_blanc = imagecolorallocate($fichier_reduit, 255, 255, 255);// fond blanc pour l'image
$fichier_larg_red = imagesx($fichier_reduit);// dimensions x et y à donner au fichier
$fichier_haut_red = imagesy($fichier_reduit);
$nom_fichier_reduit = 'norm_'.$fichier_n_nom;// on rajoute un mini_ defant le nom du fichier
// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
imagecolortransparent($fichier_reduit, $fond_blanc);// on rend transparent le fond blanc
imagegif($fichier_reduit, $fichier_dossier1.$nom_fichier_reduit);// crée le fichier réduit définitif
chmod($fichier_dossier1.$nom_fichier_reduit, 0777);// on donne un acces total sur le fichier
}
//////////////////////////////////////////////////////////////////////////////////// / si le fichier est un .jpg / .jpeg
if ($fichier_type===2){
$qualite=80;// définition de la qualité
$fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_larg_red = imagesx($fichier_reduit);// dimensions x et y à donner au fichier
$fichier_haut_red = imagesy($fichier_reduit);
$fichier_source = imagecreatefromjpeg($fichier_dossier1.$fichier_n_nom);// definition de l'image dont on va faire une miniature
$nom_fichier_reduit = 'norm_'.$fichier_n_nom;// on rajoute un mini_ defant le nom du fichier
// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
imagejpeg($fichier_reduit, $fichier_dossier1.$nom_fichier_reduit, $qualite);// crée le fichier réduit définitif
chmod($fichier_dossier1.$nom_fichier_reduit, 0777);// on donne un acces total sur le fichier
}
/////////////////////////////////////////////////////////////////////////////////// ///////////// si le fichier est un .png
if ($fichier_type===3){
$fichier_source = imagecreatefrompng($fichier_dossier1.$fichier_n_nom);// definition de l'image dont on va faire une miniature
$fichier_reduit = imagecreatetruecolor($mini_larg, $mini_haut);// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_larg_red = imagesx($fichier_reduit);// dimensions x et y à donner au fichier
$fichier_haut_red = imagesy($fichier_reduit);
$nom_fichier_reduit = 'norm_'.$fichier_n_nom;// on rajoute un mini_ defant le nom du fichier
// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduit, $fichier_source, 0, 0, 0, 0, $fichier_larg_red, $fichier_haut_red, $fichier_larg, $fichier_haut);
imagepng($fichier_reduit, $fichier_dossier1.$nom_fichier_reduit);// crée le fichier réduit définitif
chmod($fichier_dossier1.$nom_fichier_reduit, 0777);// on donne un acces total sur le fichier
}
unlink ($fichier_dossier1.$fichier_n_nom);
}
else {
$nom_fichier_reduit = $fichier_n_nom;// si le fichier est plus petit que $taille_max pas besoin de le miniaturiser
}
}
// erreur
else {?>
<table border="0" cellpadding="0" cellspacing="0" width="870" height="100" id="table1"align="center">
<tr><td><?echo "Le fichier n'a pas pu être uploadé<br />"; ?></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="870" height="100" id="table1"align="center">
<tr><td><a href="deposerannonce.php">Retour</a></td></tr></table><?
include("bas.php");
exit;
}
}
// erreur
else {?>
<table border="0" cellpadding="0" cellspacing="0" width="870" height="100" id="table1"align="center">
<tr><td><?echo "Le fichier est trop grand<br />";?></td></tr>
<tr><td><?echo "La résolution maximum hauteur ou largeur doit être de 1280 pixels<br />";?></td></tr>
<tr><td><?echo "Veuillez redimmensionner votre image, merci<br />";?></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="870" height="100" id="table1"align="center">
<tr><td><a href="deposerannonce.php">Retour</a></td></tr></table><?
include("bas.php");
exit;
}
}
// erreur
else {?>
<table border="0" cellpadding="0" cellspacing="0" width="870" height="100" id="table1"align="center">
<tr><td><?echo "Le fichier n'a pas le bon format<br />"; ?></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="870" height="100" id="table1"align="center">
<tr><td><a href="deposerannonce.php">Retour</a></td></tr></table>
<?
include("bas.php");
exit;
}
}
// erreur
else {?>
<table border="0" cellpadding="0" cellspacing="0" width="870" height="100" id="table1"align="center">
<tr><td><?echo "Le fichier est trop lourd<br />"; ?></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="870" height="100" id="table1"align="center">
<tr><td><a href="deposerannonce.php">Retour</a></td></tr></table>
<?
include("bas.php");
exit;
}?>