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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Allocation de mémoire [Wamp]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 39
    Par défaut Allocation de mémoire
    Bonjour,
    Je réalise actuellement une newsletter qui devrait envoyer des fichiers .pdf de formats qui font approximativement 14mo et 5mo. J'utilise mime et je mets en forme le msg de tel sorte qu'il passe sur un maximum de logiciel de msg sous texte ou html(script récupéré sur php.net cf:14-Aug-2006 09:19). Je l'ai modifié en fonction de mes besoins et j'ai ajouté un envoie de deux documents au lieu d'un seul:

    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
    # File for Attachment
    if($poterie) {
      $f_name="../Images/Documents/Tarif_Poterie_2006.pdf";    // use relative   path OR ELSE big headaches. $letter is my file for attaching.
      $handle=fopen($f_name, 'rb');
      $f_contents=fread($handle, filesize($f_name));
      $f_contents=chunk_split(base64_encode($f_contents));    //Encode The Data For Transition using base64_encode();
      $f_type=filetype($f_name);
      fclose($handle);
    } elseif ($porcelaine) {
      $f_name="../Images/Documents/Tarif_Soie_2006.pdf";    // use relative path OR ELSE big headaches. $letter is my file for attaching.
      $handle=fopen($f_name, 'rb');
      $f_contents=fread($handle, filesize($f_name));
      $f_contents=chunk_split(base64_encode($f_contents));    //Encode The Data For Transition using base64_encode();
      $f_type=filetype($f_name);
      fclose($handle);
    }
    Premièrement: je ne pense pas envoyer les deux fichiers mais un seul, car je l'écraserai lors de la deuxième partie, il faudrait alors utiliser un tableau?
    Deuxièmement: je reçois ce message d'erreur que je ne comprends pas
    Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 14471949 bytes) in
    qui correspond à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $f_contents=fread($handle, filesize($f_name));
    Quelqu'un aurait-il une idée?

  2. #2
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Ca veut dire que ton script à dépasser la quantité de RAM max qui peut lui être alloué.

    Pour changer ca tu peux modifier ton php.ini en changeant la ligne :

    Là à prioris ca devrait égal à 8M chez toi...tu peux le passer à 16M voir 32M ^^

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 39
    Par défaut
    Merci, mais je gagne une ligne, j'ai le même message d'erreur, mais le code erroné est :
    $f_contents=chunk_split(base64_encode($f_contents));

  4. #4
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 39
    Par défaut
    non non ca marche, j'avais pas redemarré wamp.
    Merci.

  5. #5
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    Effectivement, le memory_limit du php.ini est une des solutions.
    Il est possible aussi de modifier ce parametre via ini_set(); mais c'est a vérifier.

    Par contre, si tu es hébergé chez un hebergeur gratuit, voire un mutualisé, la plupart du temps, l'access a cette directive est bloqué. Ce qui se comprend bien dans la mesure ou si tu prend toute la mémoire, ben les ptits camarades hébergés sur le même serveur risquent de ramer dur. Donc aie conscience du problème, si la solution est facile à mettre en oeuvre chez soi, elle n'est pas toujours possible en ligne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [debutant] : Allocation de mémoire dynamique
    Par sam.fet dans le forum Langage
    Réponses: 5
    Dernier message: 15/02/2006, 14h58
  2. Problème d'allocation de mémoire dans la pile
    Par prophet666 dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 19/01/2006, 02h22
  3. [Debutant]Allocation de mémoire
    Par gwendal84 dans le forum C
    Réponses: 6
    Dernier message: 07/12/2005, 19h04
  4. Double allocation de mémoire
    Par hunter001 dans le forum C++
    Réponses: 16
    Dernier message: 25/08/2005, 13h53
  5. pb d'allocation de mémoire
    Par shura dans le forum C
    Réponses: 7
    Dernier message: 17/04/2005, 21h10

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