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 20/06/2007, 19h28   #1
Invité de passage
 
Inscription : juin 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 9
Points : 1
Points : 1
Par défaut [Upload] Faire en sorte de ne plus obtenir l'erreur 500

Bonjour à tous,

j'ai besoin d'uploader des images de maxi 2Mo.

Voici mes contraintes (incontournables pour diverses raisons) :

- hébergement mutualisé (= time_out au bout de 30" en php)
- upload à partir du navigateur (pas de client FTP)
- pas de CGI

J'utilise jusqu'à présent un formulaire classique php, le problème est que certains utilisateurs ont une erreur 500 (due au time_out d'après mon hébergeur, bien que leur connexion ne soit pas forcément lente).

Quelqu'un connait-il un moyen pour que n'importe qui puisse effectuer l'upload sans que ça plante?

Merci de vos réponses . . .
migli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 21h41   #2
Membre émérite
 
Avatar de viviboss
 
Inscription : août 2006
Messages : 943
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : août 2006
Messages : 943
Points : 941
Points : 941
Tu es confronté à des contraintes techniques insumontable.

Mais en fait tu aurais bien un moyen, avec la fonction ini_set. Encore faut-il que ton hébergeur l'autorise, mais il ne devrait pas y avoir de contre indication.

Dans le script de ton upload, tu met alors :

Code :
1
2
 
ini_set("max_execution_time",60);
Ainsi, tu passe de 30 secondes à 60.

Bon, sache tout de même que les valeurs que tu annonces sont celles par défaut pour toute config PHP (mutualisé ou non).
__________________
Veni Vidi Vici
-------------------------
Mes articles : developpez.com ou bien vbview.net
-------------------------
Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
Et aussi : --> pear_manual_fr.chm!!!

Ou encore : --> Les tutoriaux & cours PHP de Développez.com
-------------------------
viviboss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 22h57   #3
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
http://www.developpez.net/forums/sho...d.php?t=283608
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 23h55   #4
Invité de passage
 
Inscription : juin 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 9
Points : 1
Points : 1
Merci de ton lien SubO, mais j'ai visité beaucoup de discussions du genre, et soit j'ai mal lu, soit je n'ai pas encore de solution.

J'ai testé par exemple l'envoi par ftp, mais comme la connexion ftp se fait en php, ... le time out est toujours actif.

J'ai testé aussi en flash...marche pas non plus (erreur 500),

J'ai jeté un oeil sur ajax, mais on a besoin de CGI...

Par contre, quelques détails :

Mon hébergeur (nuxit) n'utilise pas le safe mode.
Par contre, le time out est bloqué à 30", d'après ce qu'ils m'ont dit, impossible de contourner.

J'ai quand même essayé ça :

Code :
1
2
3
4
5
6
7
if(!ini_set("memory_limit",'50M')) {echo "memory_limit";}//pour éviter "Fatal error: Allowed memory size"
if(!ini_set("max_execution_time",120)) {echo "max_execution_time";}
if(!ini_set("max_input_time",120)) {echo "max_input_time";}
if(!ini_set("upload_max_filesize",8192)) {echo "upload_max_filesize";}
if(!ini_get('safe_mode'))
{ // Safe Mode non-activé, on met la limite de temps d'execution à 2'.
set_time_limit(120);
j'essaie une image de 5Mo, et...erreur500...
migli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 17h17   #5
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Citation:
Envoyé par migli
j'essaie une image de 5Mo, et...erreur500...
• L'upload est limité à 2Mo en général... Pour pouvoir uploader des fichiers plus volumineux, il faut utiliser le CGI justement.

• Pour le FTP, c'est pareil, puisque ça ne fonctionne que de serveur à serveur, il faut donc tout de même passer par l'upload http pour envoyer un fichier du client vers le serveur.

• Sinon, reste la solution d'utiliser une applet Java ou un programme RAD pour découper le fichier en bloc de 2Mo, les envoyer sur le serveur, avant de refusionner le fichier...

• En dernier recours, tu peux utiliser des sites intermédiaires qui proposent l'upload de fichiers volumineux et les conservent quelques jours sur leur serveur... Tu peux peut-être ensuite essayer de le transférer sur ton serveur...
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 18h39   #6
Invité de passage
 
Inscription : juin 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 9
Points : 1
Points : 1
les utilisateurs doivent utiliser un système ultra simple, déposer leur fichier et c'est tout. En plus des images, j'ai des insertions dans une BDD, donc utiliser un site tiers n'est pas ma solution.

Java, ça serait bien, mais je n'y connais rien, je n'ai rien sous la main qui puisse m'aider.

Après deux jours de galère, je me résigne : je teste le max_time du serveur, je lance un chronomètre asynchrone, et lorsque le temps est terminé, je renvoie vers une page explicative, qui propose diverses solutions à l'utilisateur (redimensionner ses images avant upload, entre autres).

juste un détail : ces complications sont volontaires, je ne veux pas utiliser htaccess pour le renvoi.
migli 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 03h05.


 
 
 
 
Partenaires

Hébergement Web