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 :

[Upload] Upload - Souci de taille de fichier


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 49
    Points
    49
    Par défaut [Upload] Upload - Souci de taille de fichier
    Salut à tous,

    Je viens de me battre pendant une heure avec un formulaire ce qui m'ammene vers vous :

    J'ai un formulaire d'Upload qui fonctionne très bien sauf que si j'upload un fichier pdf de 15Mo (je sais c'est pas bien mais on ne sait jamais ce que peuvent faire les utilisateurs finaux), la variable $_POST est vide et je ne passe donc dans aucun de mes traitements et ne peux donc pas afficher d'erreur à l'utilisateur.

    J'ai pourtant bien mis un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=1000000>
    mais comme la variable $_POST est vide, je ne peux pas tester !!!
    ($_FILES est aussi vide)

    Pour info, j'ai fait un test avec un fichier de 1,6Mo et là aucun problème, il m'affiche bien l'erreur !!
    avec un fichier < 1Mo aucun problème non plus, mon fichier est bien chargé sur le serveur.

    Peux-etre est-ce un problème serveur (je teste actuellement en local avec easyphp) ?

    Si quelqu'un a une idée, je suis preneur car je ne comprend pas pourquoi la variable se vide !!!

    Merci d'avance.
    Doudou

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour,

    Le HTML s'écrit en minuscule et avec des guillemets aux valeurs d'attributs ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="MAX_FILE_SIZE" VALUE="1000000">
    Pour ton probleme, il faut egalement que tu configures dans ton php.ini la valeur de upload_max_filesize

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Merci pour cette réponse.

    Est-il possible de capter l'erreur car je peux pour mes tests, modifier la variable "upload_max_filesize" du php.ini mais je ne pourrais pas le faire sur le site de mon hébergeur !!

    Merci d'avance.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Quand la taille du fichier est depassé, tu dois recuperer $_FILES['nomduchamp']['error'] = 1 ou 2

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    C'est bien là qu'est mon problème !!!

    La variable $_FILES est vide si je dépasse une certaine taille.... donc je ne sais pas comment tester !!

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu travailles sur une version inférieure à PHP4.1, utilise $HTTP_POST_FILES

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Salut sabotage,

    Je viens d'essayer de capter l'erreur avec $HTTP_POST_FILES mais j'ai le même problème, la variable est un tableau vide dès que je met un fichier de 15Mo.....

    Si tu as une autre idée !!! Je suis preneur....

    Merci de ton aide.

    PS : je vais essayer de mettre l'appli en ligne pour voir le fonctionnement sur le net. Peut-être que j'aurais un "time out"...

  8. #8
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par php.net
    upload_max_filesize "2M" PHP_INI_PERDIR PHP_INI_ALL en PHP <= 4.2.3.
    donc si tu es <= 4.2.3, tu peux utiliser ini_set()

    Sinon, je dirais qu'il faut voir ça avec ton admin. Je comprends que l'hébergeur n'aie pas envie de voir transiter des fichiers de 15Mo, ça peut ouvrir la porte aux abus.

  9. #9
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par R@IZER Voir le message
    un fichier pdf de 15Mo (je sais c'est pas bien mais on ne sait jamais ce que peuvent faire les utilisateurs finaux)
    A bas la dictature de l'utilisateur !

    Non ? Bon, alors il faut faire avec, mais il n'est quand même pas abusif de refuser à un utilisateur de charger un pdf supérieur à 2Mo. Il peut éventuellement lui être suggéré de splitter son document en plusieurs pdf, au pire.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Merci Jml, mais mon problème n'est pas d'autoriser l'upload de gros fichier.

    J'ai mis dans mon formulaire une limite à 1Mo (voir mes précédents message) et ça marche très bien avec des fichier entre 1 et 4Mo, j'ai bien un mesage d'erreur qui dit "taille du fichier supérieure à la taille autorisé".

    Le problème est avec des fichiers encore plus gros (15Mo), le formulaire est posté mais dans ma page d'action, les variables $_POST et $_FILES sont vides comme ci j'arrivais sur la page sans passer par le formulaire.

    Est-ce plus clair ?

    Merci.

  11. #11
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Je répons vite fait car sur le départ.

    Si elles ont vides, ne pourrais-tu pas tester le HTTP_REFERER pour voir que tu viens de la bonne page, et ainsi signaler l'erreur, du genre "une erreur est survenue, votre fichier est probablement trop volumineux"

    Ce serait un début...

    Ou encore un test par javascript de la taille du fichier avant envoi.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Ou encore un test par javascript de la taille du fichier avant envoi.

    Après quelques recherches sur notre ami Google, il semble que pour des questions de sécurité, javascript ne permette pas de tester la taille d'un fichier avant upload.

    C'était pourtant une bonne idée.

    Concernant HTTP_REFERER, cela ne m'aidera pas car le formulaire recharge la même page.

    Merci quand même pour ton aide.

    Si quelqu'un voit une autre solution...

    Merci à tous.

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Essai d'augmenter memory_limit dans ton php.ini
    Il semble egalement que Apache puisse limiter la taille des fichier (fichier php.conf, parametre LimitRequestBody).

    Teste egalement ton script dans un autre contexte(ie : PHP5)

Discussions similaires

  1. [Système] Augmenter la taille de fichier en upload
    Par clarence dans le forum Langage
    Réponses: 6
    Dernier message: 05/01/2007, 08h23
  2. Tester la taille de fichier avant upload
    Par RobinNono dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 27/06/2006, 17h38
  3. [Upload] Taille de fichier uploadé
    Par nicoaix dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2006, 18h23
  4. [Upload] Upload de fichier -> petit souci
    Par snipes dans le forum Langage
    Réponses: 2
    Dernier message: 26/04/2006, 17h46
  5. Réponses: 3
    Dernier message: 16/11/2005, 22h00

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