Bonjour,

J'ai un formulaire qui permet d'uploader une image, qui fonctionne bien.

Par contre j'ai juste un probleme, c'est quand soit la taille du fichier ou soit la taille de l'image est trop importante mon if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) me retourne false et du coup mon fichier ne passe pas en upload.

De ce fait, j'ai récuperer un bout de code qui me permet de redimensionner l'image mais cela ne fonctionne toujours pas.
Je suis chez Free (en attendant de finir mon site) est-ce-que c'est Free qui me bloque a partir d'une certaine taille ?

Je vous met le code au niveau de mon if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier))


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
 
if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     { 
					//calcul et redimension
                    //*********************
                    $fichierSource  = $dossier ;
                    $fichierSource .= "/";
                    $fichierSource .= $fichier;  
                    $fichierSource  = $fichierSource;
                    //hauteur / largeur 
                    $rapport = $infos_img[1] / $infos_img[0];
                    //Dimension de sortie
                    $hauteurDestination = $largeurDestination * $rapport; 
 
					 //Réaloue la mémoire dont le serveur à besoin
                       //*******************************************
                       $memoryNeeded = round(($infos_img[0] * $infos_img[1] * $infos_img['bits'] * $infos_img['channels'] / 8 + Pow(2, 16)) * 1.65);
                       $mem_in_use= memory_get_usage();
                       //echo "Mémoire utilisée : $memoryNeeded contre $mem_in_use<br><br>";
                       $test = (integer) ini_get('memory_limit') + ceil(((memory_get_usage() + $memoryNeeded) - (integer) ini_get('memory_limit') * pow(1024, 2)) / pow(1024, 2)) + 1;            
                       //solution calculée
                       if(function_exists('memory_get_usage') && memory_get_usage() + $memoryNeeded > (integer) ini_get('memory_limit') * pow(1024, 2))               
                           ini_set('memory_limit', (integer) ini_get('memory_limit') + ceil(((memory_get_usage() + $memoryNeeded) - (integer) ini_get('memory_limit') * pow(1024, 2)) / pow(1024, 2)) + 2 . 'M');
 
					//Création de l'image
                    //*******************
                    $source = imagecreatefromjpeg($fichierSource); 
 
                    $largeurSource = imagesx($source); 
                    $hauteurSource = imagesy($source);
 
                    if($largeurSource > $largeurDestination){
                       $im = ImageCreateTrueColor ($largeurDestination, $hauteurDestination)      
                            or die ("Erreur lors de la création de l'image");  
                    }
                    else{  
                       $im = ImageCreateTrueColor ($infos_img[0], $infos_img[1])
                            or die ("Erreur lors de la création de l'image");
                       $largeurDestination = $infos_img[0];
                       $hauteurDestination = $infos_img[1];     
                    }
					 //Redimentionnement
                    //***************** 
                    ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);                                                                                    
 
                    //Création du fichier de sortie
                    //*****************************
                    $fh=fopen($fichierSource,'w');
                    fclose($fh);
                    ImageJpeg ($im,$fichierSource,$quality);
                    $size_file = filesize($fichierSource);
 
					  //Affiche le détail de l'image
                    echo '<u>Détails de l\'image finale sur le serveur</u><br>'; 
                    echo '<b>Fichier :</b> '  , $fichier, '<br />'; 
                    echo '<b>Taille :</b> '   , $size_file, ' Octets<br />';
                    echo '<b>Qualité :</b> '  , $quality, ' %<br />'; 
                    echo '<b>Largeur :</b> '  , $largeurDestination, ' px<br />'; 
                    echo '<b>Hauteur :</b> '  , $hauteurDestination, ' px<br />';
                    echo '<b>Itération de compression :</b> ', $iteration, ' x <br />'; 
                    echo '<hr />'; 
 
 
 echo 'votre annonce a bien été enregistrée';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
Voila si vous pouvez m'aider ca serais cool Merci