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] Forcer l'upload de fichier -> fonctionne en local, mais pas en ligne


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut [Upload] Forcer l'upload de fichier -> fonctionne en local, mais pas en ligne
    Bonjour,

    J'ai fait un script PHP pour forcer un téléchargement. Tout fonctionne correctement en local ( je travail avec Easy Php ), mais dès que je met le tout en ligne, les fichiers ne se téléchargent pas complètement, enfin pas tous, seulement ceux qui dépassent pas deux ou trois cent Ko ... c'est plutôt embêtant, car il y a plusieurs gros fichiers concernés par ce téléchargement "forcé".

    voici mes headers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    header("HTTP/1.1 206 Partial Content");
    header("Content-Length: ".$taille);
    header("Content-type: application/force-download");
    header("Content-Disposition: attachment; filename=\"".filename."\";");
    header("Pragma: no-cache");
    header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
    header("Expires: 0");
    readfile($filename);
    Le problème peut-il venir de l'hébergeur ? ( mon site est sur free ). Ca m'embêterai beeacoup ... je vois pas comment faire autrement ...

    Bon le truc qui me parrait le plus bizard, c'est que ca fonctionne en local ...

    Quelqu'un a une idée ?

    Merci d'avance

  2. #2
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    Cela peut effectivement venir de l'hébergeur.

    Chez Free, il me semble que le max upload autorisé est de 2Mégas.
    Mais pour vérifier le mieux est d'envoyer sur ton serveur un fichier appellé PHPInfo qui te donnera toutes les variables d'environnement de ton serveur....
    Dedans il y a une ligne appellée upload_max_filesize (qui est une variable définie sur le serveur)
    Oups oublie ce que j'ai dit...
    Je croyais que tu parlais d'upload et non de download....
    Que se passe t-il quand tu tapes l'adresse du fichier directement dans la barre de navigation plutot que de passer par ta page ?

    @+
    cadou

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut
    Bon, je doit précisé que je suis en 56Ko, et oui, pas encore l'ADSL ! donc je vais pas attendre jusqu'au bout du téléchargement ...

    A partir de la page, le download se stop à environ 200 - 300 ko.

    Quand je met un lien dans l'url ... je m'arrette à 1Mo ( sinon il me reste 50 min a attendre pour un fichier que j'ai déjà )

    Bon ça fonctionne, le Mo est dépassé.

    Une idée ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Par défaut
    logiquement, si tu démarres le download du fichier, c'est plus un problème lié à php.

    mais à quoi c'est lié, je sais pas...

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut
    Wai je comprend vraiment pas.
    Surtout que ca fonctionne très bien en local, et en plus, en ligne le téléchargement commence normalement, mais se termine prématurément : il s'arrête net.

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut
    Bon, j'ai rééssayer de m'y mettre, en faisant des tests, j'ai été surpris de voir une nouvelle erreur :
    Internal Server Error
    Après quelques recherches, j'ai trouvé qu'il s'agit de l'erreur 500 :

    Je donne une source ( si ça peut aider ... )

    http://www.nuxit.com/support/index.php?rep=10
    Réponse :

    L'erreur 500 est une erreur classique qui se produit dès que le serveur HTTP rencontre une anomalie. Si cela vous arrive, il y a principalement 2 pistes d'investigation pour en déterminer la cause.

    PISTE 1 : LES FICHIERS .HTACCESS

    Ces fichiers permettent d'exécuter certaines directives liées au serveur HTTP, comme la réécriture d'URL, la protection par accès, etc. Si ces fichiers sont incorrects (mauvaise syntaxe...), alors une erreur 500 est renvoyée. Vous devez donc vérifier que vous n'avez pas dans le répertoire concerné, ou un répertoire parent, un fichier .htaccess qui pourrait causer l'erreur (dans le doute, supprimez le s'il existe pour voir). Notamment, vérifiez attentivement que :

    - Vos règles d'URL Rewriting sont correctes. Relisez le manuel de référence de l'URL Rewriting

    - Vous n'utilisez pas de directive php_value : elles sont interdites dans le .htaccess. Voir comment personnaliser PHP

    - Vous n'avez pas inséré par le biais d'un éditeur de texte déconseillé (WordPad par exemple) des caractères indésirables.


    PISTE 2 : LE TEMPS MAX. D'EXECUTION PHP

    Il est fixé à 30 secondes. Un script PHP n'a pas le droit de s'exécuter pendant plus de 30 secondes. Si c'est le cas, une erreur 500 sera renvoyée. Si votre script met donc une trentaine de secondes avant d'afficher l'erreur 500, vous êtes certainement dans ce cas là. Vérifiez attentivement que :

    - Si vous n'avez pas touché à la programmation de votre script PHP, il s'agit sans doute du changement de comportement d'une ressource externe. Par exemple, si votre script fait établit des connexions avec un autre site Internet, et que ce site est indisponible, alors votre site lui-même risque de l'être. Vérifiez donc tout élément externe : inclusion d'une page/image distante, flux RSS, compteurs et livres d'or, etc. ; identifiez la ressource qui pose problème et supprimez la de votre page, ou modifiez votre programmation pour qu'elle tienne compte de la possibilité d'indisponibilité de la ressource

    - Sinon il s'agit sans doute d'un problème de programmation. Vérifiez que vous n'avez pas fait de boucle infinie, ou de code pouvant générer un problème de programmation. Reprenez votre code ligne par ligne en commentant pas à pas des blocs de programmation afin d'identifier la ou les lignes qui posent problème.

    - Certains scripts peuvent être bien programmés mais engendrer tout de même un temps d'exécution supérieur à 30 secondes. Renseignez vous alors au besoin auprès des développeurs, et essayez de trouver une solution ; par exemple si le script fait plusieurs traitements à la fois, séparez chaque traitement, et découpez le script en autant de scripts élémentaires que nécessaire, que vous lancerez séparément

    - Si vous utilisez des scripts d'envois de mails en masse, utilisez notre serveur SMTP de masse


    AUTRES PISTES

    3) La taille de la mémoire allouée : elle est fixée à 16 Mo par script PHP. Ce cas se produit très rarement, mais il peut arriver qu'un script très gourmand ait besoin de plus de 16 Mo de RAM. Dans ce cas, tenez compte des conseils énoncés pour le temps maximum d'exécution.

    4) Fonctions et librairies utilisées : si votre script PHP utilise des librairies PHP non installées, cela peut se traduire par une erreur 500. Vérifiez dans votre phpinfo() que les librairies requises sont bien installées.

    5) Autres cas : si vous n'arrivez pas à déterminer le problème malgré tous ces conseils, contactez le support en précisant exactement quelle page provoque l'erreur, dans quelles conditions, quel est le programme PHP utilisé, et quelles librairies il utilise.

    J'ai pensé au début que les 30 secondes d'execution pouvait être la cause, par exemple, si le téléchargement durait plus de 30s, ca crachait. Mais j'ai testé et un téléchargement dure bcp plus que de 30s ...

    Je n'ai pas d'autres idées ...

Discussions similaires

  1. [Artichow] Génération graphique qui fonctionne en local mais pas en ligne
    Par Marc22 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 18/02/2011, 13h27
  2. Script qui fonctionne en local, mais pas en ligne
    Par student_php dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/11/2010, 10h22
  3. Appplication fonctionne en local mais pas en ligne
    Par dreamover dans le forum Langage
    Réponses: 1
    Dernier message: 08/07/2009, 21h00
  4. [MySQL] requête fonctionne en local mais pas en ligne
    Par toams69 dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 10/02/2009, 13h22
  5. [RegEx] Regex fonctionnant en local mais pas en ligne
    Par MadSoldier dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2008, 17h04

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