IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Redimensionnement d'images uploadées limité à 600ko ?


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Redimensionnement d'images uploadées limité à 600ko ?
    Bonjour à tous,

    J'ai un problème (si si, c'est vrai), le voici :
    Sur une page, j'envoie une image. Dès qu'elle dépasse les 600ko (proximo), j'ai un problème pour la récupérer.
    Non pas que le temps d'up est trop long, j'ai tout vérifier, c'est au moment du 'imagecreatefromjpg()' que le script plante, il ne donne strictement plus rien et n'affiche pas la suite de la page.

    J'ai pu isoler cela en insérant des 'print_r $_FILES["fichier"]' et cela fonctionne juste avant l'imagecreate (du moins il insère tout ce que je veux) et après ... il n'affiche rien.
    Grâce à cela on sait aussi que cela ne vient pas de l'up, mais bien après.

    J'ai testé directement un imagecopy(), qui ne fonctionne pas non plus.

    Avec des images de moins de 600Ko, aucun problème, le reste de mon script se lance correctement ...

    Niveau code, voici mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form method="post" action="index.php" enctype="multipart/form-data"
    Parcourez votre disque dur et choississez votre fichier image que vous souhaitez transférer.<br />
    Attention, la taille maximale autorisée est de <?php echo ($poids_max/1024); ?> Ko (Pour toute taille supérieur, <a href='index.php?page=contact'>Contactez-nous</a>).<br />
    <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $poids_max;?>" />
    <input type="file" name="fichier" size="30"><br /><br />
    Cliquez sur le bouton suivant pour envoyer votre image.<br />
    <input type="submit" name="upload" onclick="showWait('Patientez svp - sauvegarde de votre image <br /> Cela peut prendre quelques minutes');" />
    </form>
    Le traitement derrière (je préviens, je ne vous mets pas la vérification du type et du poids)
    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
     
    // Récupération de l'image envoyée via le formulaire
    $img = imagecreatefromjpeg($_FILES['fichier']['tmp_name']);
    $nom_fichier = time().'.jpg';
     
    // Récupère les dimensions
    $size = getimagesize($_FILES['fichier']['tmp_name']);
    $larg = $size[0];
    $long = $size[1];
    $coeff = $larg/$width;
    $larg = $larg/$coeff;
    $long = $long/$coeff;
     
    $img_dest = imagecreatetruecolor($larg, $long);
     
    $copy = imagecopyresampled($img_dest, $img, 0, 0, 0, 0, $larg, $long, $size[0], $size[1]);
     
    imagejpeg($img_dest, $repertoire.'min/'.$nom_fichier);
    imagejpeg($img, $repertoire.$nom_fichier);
     
    imagedestroy($img_dest);
     
    $url = $repertoire.''.$nom_fichier.'';
    $picurl = $repertoire . $nom_fichier;
    $picurlMin = $repertoire.'min/'.$nom_fichier;
    Merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    comme tu imposes un "MAX_FILE_SIZE" de $poids_max (600Ko ?), les fichiers de plus de $poids_max ne seront pas uploadés.

    Donc, au niveau du traitement, il te faut un test pour savoir si le fichier a été uploadé correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if ($_FILES['fichier']['size']>0 && $_FILES['fichier']['size']<=$poids_max) {
       // ..... (traitement de l'image)
    } else {
       // ..... pas de traitement
    }

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Re-
    Merci pour ce premier avis.

    Par contre, comme je l'avais mis, je fais ces tests je ne les ai juste pas mis dans le code que je vous ai fournit.

    J'ai essayé en rajoutant un
    header("Content-Type: image/jpeg");
    ini_set('memory_limit', '50M');
    mais cela n'a pas fonctionné. Il se peut que je l'utilise mal :/ ; je l'ai rajouté juste avant le imgcreatefromjpg ... sachant qu'après cela n'aurait servit à rien vu que l'exécution s'arrête juste avant.

    Pour information, j'ai réussi à copier l'image envoyée des temporaires à son dossier de destination.

    Le problème Ne vient pas du poids mais de la TAILLE : j'ai testé des jpg de 1600*1200 qui passe (550ko) et des jpg de 1600*120 qui passe alors qu'elles pèsent 1.5Mo. Par contre, dès que ça dépasse les 2MPx ...

    Ma question, maintenant que mon image est sur mon serv, puis-je en créer une miniature sans utiliser de imagecreatefromjpg ?
    J'arrive à l'ouvrir et à l'afficher (en binaire) via la fonction fopen, est-ce qu'elle serait adaptée pour le redimensionnement ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Dans ce cas,
    je crois qu'il faut changer le MAX_FILE_SIZE du php.ini
    (limité par défaut à 2 Mo)

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Nan, le problème ne vient pas du poids, mais bien de la taille ^^
    Mais j'ai quand même re-testé (j'avais testé avant de poster le message, j'aurais du le préciser), et cela ne règle pas le problème.

    Citation Envoyé par lenouvdu44 Voir le message
    Le problème Ne vient pas du poids mais de la TAILLE : j'ai testé des jpg de 1600*1200 qui passe (550ko) et des jpg de 1600*120 qui passe alors qu'elles pèsent 1.5Mo. Par contre, dès que ça dépasse les 2MPx ...

Discussions similaires

  1. upload puis redimensionnement d'image limité à 2 Mo
    Par franckcl dans le forum Langage
    Réponses: 2
    Dernier message: 22/08/2010, 12h38
  2. Redimensionner une image uploadée
    Par saphi dans le forum Langage
    Réponses: 8
    Dernier message: 10/07/2009, 14h18
  3. [ImageMagick] Redimensionner une image à l'upload
    Par dembroski dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/07/2007, 16h23
  4. [Upload] Redimensionnement d'image uploader
    Par nicerico dans le forum Langage
    Réponses: 7
    Dernier message: 04/02/2007, 20h58
  5. [Upload] Redimensionner une image après upload
    Par putubudiarta dans le forum Langage
    Réponses: 2
    Dernier message: 14/01/2007, 12h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo