Gularu.fr

Cueillir l'actu, l'insolite du web et d'autres trucs

  • Une pensée pour le Coucou et cette victoire des blogueurs...

    En dehors de la victoire, j’ai eu une pensée pour le Coucou avant hier, je me disais qu’il n’aura pas vu la fin du règne. Surtout, je me suis dit que les valeurs que je porte, celle de dire que l’Homme est au centre de tout, je les trouvais chez ce grand mec, une grande [...]

Publié le 20 juin 2009

Place à la Geekerie. Et encore, Geekerie de luxe car on va parler programmation !

Voilà un peu plus d’une semaine que je code un module d’upload et de gestion de PDF pour une cliente.

Or je me suis confronté à un problème : le upload_max_filesize !

En effet, j’ai installé le module flash SWFUpload qui permet l’upload de fichier et surtout de voir l’état d’avancement d’un upload dans un formulaire. Seulement voilà, j’avais beau essayer de mettre un gros fichier : impossible.

Cela est dû à la variable serveur appelée upload_max_filesize. C’est la variable (entre autres) qui dit jusqu’à combien vous pouvez télécharger en php sur votre serveur. Elle est limitée à 2Mo par defaut. Sur 1and1, elle est à 20Mo. Vous pouvez voir à combien elle est en regardant dans votre phpinfo.

Pourtant, je ne pouvais dépasser les 8Mo de grandeur de fichier. Pourquoi ? En regardant dans le phpinfo, j’ai trouvé la variable post_max_size qui été à 8Mo. C’est cette variable aussi qui défini combien vous pouvez envoyer de données par le champ input File.

Ces deux variables ne sont pas modifiables en serveur de données mutualisé, il faudra donc resserrer vos fichiers ou trouver une autre solution (moi j’ai opté pour l’utilisation du logiciel Filezilla).

Sur ce, à bientôt pour de nouvelles geekeries !



Partager

8 commentaires

  1. Nicolas J dit :

    Putain ! Je comprends rien ! Tu devrais faire un billet sur le coût du machin à Versailles.

  2. Gularu dit :

    C’était fait avant que tu me le demande ^^
    C’est pour mes autres lecteurs ce genre de billet, faut bien leur donner à manger !

  3. Amaury dit :

    Salut,
    Je voudrais juste corriger ton post :D

    « Ces deux variables ne sont pas modifiables en serveur de données mutualisé, il faudra donc resserrer vos fichiers ou trouver une autre solution (moi j’ai opté pour l’utilisation du logiciel Filezilla). »

    EN fait il est possible de modifier la taille de max_size chez 1and 1 par exemple en mutualisé.

    C’est très simple !
    1 : Créer un fichier php.ini avec ces valeurs que vous pouvez modifiez

    2 : le mettre à la racine de votre site.
    3 : Pour que la modif soit effective il faut que ce fichier soit présent dans tous les répertoires du site ce qui va être fait à l’aide d’un autre script.
    4 : Créer un fichier script.php par exemple avec dedans ce script :

    <?php
    // set this value to Y if you only want to overwrite old php.ini files
    // set this value to N if you want to put a php.ini file in every directory
    $overwriteOnly = "N";

    if ($overwriteOnly == "Y") echo "Operating in Overwrite Only Mode »;
    $path = « /homepages/xx/dxxxxxxxxx/htdocs »;
    $source = $path . « /php.ini »;
    if (!file_exists($source)) die(‘Error – no source php.ini file’);
    function search($dir) {
    global $source;
    global $overwriteOnly;
    $dh = opendir($dir);
    while (($filename = readdir($dh)) !== false) {
    if ( $filename !== ‘.’ AND $filename !== ‘..’ AND $filename !== ‘cgi-bin’ AND is_dir(« $dir/$filename ») ) {
    $path = $dir. »/ ».$filename;
    $target = $path . « /php.ini »;
    if (!file_exists($target) AND $overwriteOnly == « Y ») {
    echo « $path skipped – no php.ini file« ;
    } else {
    echo « $target « ;
    if (!copy($source,$target)) echo « Write failed for $target « ;
    if (file_exists($target)) chmod($target,0600);
    }
    search($path);
    }
    }
    closedir($dh);
    }
    search($path);
    echo « Done. »;
    ?>

    Remplisser correctement la variable path avec votre path à vous.
    Placer ce fichier à la racine.

    5 : dans votre navigateur tapez http://www.lenomdevotresite.com/script.php

    6 : Vous pouvez vérifier que c’est effectif avec infophp();

    Voilà
    Bonne journée !
    Amaury

  4. Nicolas dit :

    Je comprends rien à ce commentaire. Je voudrais juste corriger la faute au mot « corriger » dans la première phrase.

  5. Amaury dit :

    Oui désolé pour cette faute de frappe mais je ne peux la corriger car pas d’accès aux posts …

    Pour ce qui est de la compréhension du commentaire, c’est tout simplement un tutorial répondant à la question de upload_max_filesize limité sur 1and1 enfin un serveur mutualisé.

    Disons une solution au problème !

  6. Gularu dit :

    Tu peux modifier la variable, mais ce n’est pas pour autant que tu pourras uploader plus lourd. C’est limité à 8Mo comme je le dis dans le billet.

    Je peux peut-être me tromper, as-tu essayé d’uploader avec ta technique ?

    (j’ai corrigé la faute pour l’autre vieux cornichon, ne nous embête plus… :) )

  7. Nicolas dit :

    Hé ho ! Jeune con, tu sais ce qu’il te dit le cornichon ?

  8. Amaury dit :

    Oui effectivement j’ai essayé et ça marche nickel !
    J’ai augmenté à 30Mo et vérifié avec infophp();

    Je n’aurais pas posté cette solution sans avoir testé ;-)

    Bonne journée à vous
    Amaury

    Laisser un commentaire