aodot Posté 4 Juin 2007 Posté 4 Juin 2007 Bonjour, J'upload et je redimensionne des fichiers jpeg par l'intermediare d'un script php. Tout fonctionne mis à part quand j'upload des fichiers plus grand que 2 Mo (environ). Quand j'essaye d'uploader un fichier de 3 Mo (par exemple), le script ne passe pas la vérfication : is_uploaded_file <?PHP//FICHIER AJOUT_PHOTO.PHP$serie = $_POST['serie'];$file_tmp = $_FILES['imgfile']['tmp_name'];if(!is_uploaded_file($file_tmp)){$query = "INSERT INTO photos (id,num_categorie,photos,date,heure) VALUES ('','$serie','',NOW(),NOW())";mysql_query($query);}else{include('photos_resize.php');$query = "INSERT INTO photos (id,num_categorie,photos,date,heure) VALUES ('','$serie','photos/$nom_image',NOW(),NOW())";mysql_query($query);}?> <?php//FICHIER PHOTOS_RESIZE.PHPinclude("photos_config.php");//SI ENVOI IMAGE$file_type = $_FILES['imgfile']['type'];$file_name = $_FILES['imgfile']['name'];$file_size = $_FILES['imgfile']['size'];$file_tmp = $_FILES['imgfile']['tmp_name'];//VERIFICATION EXTENSION$ext = strrchr($file_name,'.');$ext = strtolower($ext);if (($extlimit == "yes") && (!in_array($ext,$limitedext))){echo "<p class='body_gras_rouge'>Cette extension n'est pas prise en compte.</p><br>";exit();}//OBTENIR EXTENSION$getExt = explode ('.', $file_name);$file_ext = $getExt[count($getExt)-1];//CREER UN NOM AU HASARD$ThumbWidth = $img_thumb_width;$rand_name = md5(uniqid(rand(), true));//GARDER LE TYPE DIMAGEif($file_size){ if($file_type == "image/pjpeg" || $file_type == "image/jpeg") { $new_img = imagecreatefromjpeg($file_tmp); chmod ($new_img, 777); } elseif($file_type == "image/x-png" || $file_type == "image/png") { $new_img = imagecreatefrompng($file_tmp); chmod ($new_img, 777); } elseif($file_type == "image/gif") { $new_img = imagecreatefromgif($file_tmp); chmod ($new_img, 777); }//GARDER LE MEME RATIO POUR LE REIDMENSIONNEMENTlist($width, $height) = getimagesize($file_tmp);$imgratio=$width/$height;if ($imgratio>1){$newwidth = $ThumbWidth;$newheight = $ThumbWidth/$imgratio;}else{$newheight = $ThumbWidth;$newwidth = $ThumbWidth*$imgratio;}//FONCTION QUI REDIMENSIONNE IMAGEif (function_exists(imagecreatetruecolor)){//création de l'image vierge$resized_img = imagecreatetruecolor($newwidth,$newheight);}else{die("<p class='body_gras_rouge'>Erreur: Les libraires GD version 2 doivent êtres diposnibles sur le serveur. Contactez le Webmaster</p>");}imagecopyresampled($resized_img, $new_img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);//ENREGISTREMENT MESSAGE$nom_image = "galerie-$rand_name.$file_ext";ImageJpeg ($resized_img,"$path_thumbs/$nom_image");ImageDestroy ($resized_img);ImageDestroy ($new_img);}?> <?php//FICHIER PHOTOS_CONFIG//path where to store images$path_thumbs = "../photos";$path_big = "../photos/big";//the new width of the resized image.$img_thumb_width = 640; // in pixel//Do you want to limit the extensions of files uploaded (yes/no)$extlimit = "yes";//allowed Extensions$limitedext = array(".jpg",".jpeg");//check if folders are Writable or not//please CHOMD them 777if (!is_writeable($path_thumbs)){ die ("<p class='body_gras_rouge'>Erreur: Le répertoire <b>($path_thumbs)</b> n'existe pas. Contactez le Webmaster.</p>");}if (!is_writeable($path_big)){ die ("<p class='body_gras_rouge'>Erreur: Le répertoire <b>($path_big)</b> n'existe pas. Contactez le Webmaster.</p>");}?> Pourtant je n'ai pas de restriction de taille etc... Je suis sur un serveur dédié OVH. Il y a til un problème dans le code ? Merci par avance.
Nanane Posté 5 Juin 2007 Posté 5 Juin 2007 (modifié) Bonjour, Il existe dans PHP une option qui limite la taille des fichiers. Comme tu es chez un hébergeur, ils ont peut être pu modifier cette option pour éviter justement l'upload massif de fichiers trop gros de la part de leurs clients Fais donc un phpinfo() dans ton script pour vérifier la taille de cette variable. Et si c'est de la que vient le probleme, j'ai peur de n'avoir aucune solution. PS: je me suis aidé de commentcamarche.net pour te répondre Modifié 5 Juin 2007 par Nanane
aodot Posté 5 Juin 2007 Auteur Posté 5 Juin 2007 Bonjour, Merci pour votre réponse clair et rapide et... vous aviez raison : upload_max_filesize 2M 2M Je comprend enfin ! Ouf ! Si quelqu'un aurait la solution ça me dépannerait bien mais je vais essayer de voir avec OVH pour changer ça. Merci encore.
captain_torche Posté 5 Juin 2007 Posté 5 Juin 2007 Puisque tu es sur un dédié, il te suffit d'éditer le fichier php.ini, pour remplacer la valeur (8M semble être un bon compromis)
aodot Posté 5 Juin 2007 Auteur Posté 5 Juin 2007 Bonjour, Merci à vous deux, le problème a été réglé j'ia donc édité le php.ini. A bientot.
Nanane Posté 5 Juin 2007 Posté 5 Juin 2007 Pas de quoi Donc si j'ai bien saisi, les serveurs dédiés chez ovh laissent l'accès aux fichiers de conf...
iNCiTE Web Posté 6 Juin 2007 Posté 6 Juin 2007 Les serveurs dédiés OVH laisse accès à tout ! c'est "ton" serveur... tu peux faire rm -rf /home si tu veux ! tu es root sur la machine Mais si on n'y connait rien en admin serveur Linux, il vaut mieux pas jouer si le serveur est dédié à un site crucial ou à héberger des clients ! il y a de l'infogérance pour ça, au hsard celle du Hub ! Pour revenir au sujet initial, j'avais cru voir que c'était vraiment 8M la limite maxi car après c'est Apache (en version 1 en tou cas) qui semblait pédaler dans la semoule... Par contre j'utilise un autre procédé : j'ai trouvé une toute petite appli Flash avec un bouton "Parcourir" et une barre de progression, ça charge un fichier puis ça appelle un script PHP. On est limité uniquement par le temps maxi d'exécution d'un script (30 sec par défaut ce qui laisse le temps d'envoyer des dizaines de Mo, tout cela bien sûr dépendant de la vitesse d'upload de la personne). Bon par contre ça oblige à avoir Flash, mais dans mon cas c'ést pour les backoffices de mes sites donc je peux imposer aux clients (qui de toutes façons ne savent ce que c'est). Seb.
Nanane Posté 6 Juin 2007 Posté 6 Juin 2007 Je n'y conais rien en hébergeur et j'avais confondu la notion de "serveur dédié" a un service et celle de serveur dédié a un seul "utilisateur" (le locataire) Sinon pour apache j'ai fait une bref recherche => Limiter la taille d'upload de fichiers dans Apache A verifier donc la valeur par defaut tu peux faire rm -rf /home si tu veux ! on peut meme faire un shutdown?
rabiet Posté 2 Juillet 2007 Posté 2 Juillet 2007 j'ai trouvé une toute petite appli Flash avec un bouton "Parcourir" et une barre de progression, ça charge un fichier puis ça appelle un script PHP. On est limité uniquement par le temps maxi d'exécution d'un script (30 sec par défaut ce qui laisse le temps d'envoyer des dizaines de Mo, tout cela bien sûr dépendant de la vitesse d'upload de la personne). Bonjour, Pourrais tu nous indiquer quel est ce Flash et où il est possible de le trouver ? Merci Christophe
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant