Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2006, 16h25   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 4
Points : 0
Points : 0
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 :
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
fecalmatter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 16h33   #2
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
Cela peut effectivement venir de l'hébergeur.

Citation:
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
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 16h47   #3
Invité de passage
 
Inscription : novembre 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 4
Points : 0
Points : 0
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 ?
fecalmatter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 16h57   #4
Membre habitué
 
Inscription : mars 2003
Messages : 154
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 154
Points : 145
Points : 145
Envoyer un message via MSN à Orgied
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...
Orgied est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 17h04   #5
Invité de passage
 
Inscription : novembre 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 4
Points : 0
Points : 0
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.
fecalmatter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2006, 15h55   #6
Invité de passage
 
Inscription : novembre 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 4
Points : 0
Points : 0
Bon, j'ai rééssayer de m'y mettre, en faisant des tests, j'ai été surpris de voir une nouvelle erreur :
Citation:
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
Citation:
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 ...
fecalmatter est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h52.


 
 
 
 
Partenaires

Hébergement Web