probleme d'upload vraiment bizarre

ViPHP
ViPHP | 2287 Messages

18 août 2007, 12:24

Bonjour a tous

J'ai le meme probleme que bazura1

Comment faire pour connaitre la valeur de set_time_limit?

Merci d'avance Guillaume
La valeur s'appelle max_execution_time dans le fichier php.ini, et elle s'exprime en secondes ( 0 signifiant illimité ). Généralement tu n'as pas besoin de connaître cette valeur mais seulement de la changer, d'où le nom de cette fonction (set...).
if(!@work()){ Nespresso(); } else { what(); }
______________________________

gui8676
Invité n'ayant pas de compte PHPfrance

18 août 2007, 13:30

Merci pour le renseignement

J'ai testé en mettant set_time_limit(0), mais j'ai toujours mon problème

Je suis sur que le probleme provient de ca et non de l'upload car l'upload de mes images de plus de 2Mo se fait sans probleme

Avez vous une idee pour que je puisse redimensionner mes images plus rapidement (j'ai le meme script que AB a donne)

Merci d'avance
Guillaume

ViPHP
AB
ViPHP | 5818 Messages

18 août 2007, 20:39

@calimero
Dans phpinfo tu trouveras la directive max_execution_time qui fixe le temps maximum d'exécution d'un script.
Si ton hébergeur le permet, tu peux essayer
ini_set('max_execution_time', 0);

en début de ton script pour désactiver la fonction (0 indique illimité);

Un autre moyen - toujours si ton hébergeur le permet, entre autre il faut que php ne soit pas en safe mode - pour contourner max_execution_time est d'utiliser la fonction set_time_limit() que tu peux insérer au début de ta page PHP.
Ainsi
set_time_limit(300);
fixe la durée max d'exécution d'un script à 5 min et
set_time_limit(0);
indique une durée illimitée.


Mais il y a également upload_max_filesize (souvent fixé à 2 M) et post_max_size 8M qui limitent le téléchargement pour les gros fichiers (ou plusieurs petits).
Toujours si l'hébergeur le permet tu peux essayer de mettre

Code : Tout sélectionner

php_value upload_max_filesize 50M php_value post_max_size 50M
dans un fichier .htaccess pour permettre 50Mo par exemple.

Attention : si l'hébergeur ne permet pas de modifier la config via un fichier .htacess , ça risque fort de planter l'accès à ton site. Il faut donc avoir un logiciel ftp sous la main pour pouvoir effacer ce fichier (ou en mettre un autre à la place) en cas de pépin.

Certains hébergeurs mutualisés permettent ces configurations, mais c'est loin d'être la majorité.
Par exemple il me semble qu'infomaniak ne le permet pas, non plus OVH et non plus online.net (un de mes hébergeurs) qui ne permet pas de modifier la config serveur via un fichier .htaccess. Corrigez moi si je me trompe, ça a peut-être changé depuis.
Le seul mutualisé que je connaisse qui permette cette config est seconde.fr (j'ai testé avec succès des fichier de 50 Mo).
Si vous en connaissez d'autres merci de les indiquer. Le pb est que ces possibilités de configuration ne sont jamais mentionnés dans les offres d'hébergement.

Note: on peut utiliser les fonction ftp de php pour un téléchargement de fichier, ce qui est plus indiqué comme le souligne Sékiltoyai. Mais on se heurte au mêmes problèmes pour la configuration.

ViPHP
ViPHP | 5924 Messages

18 août 2007, 21:23

Oui, et si on veut que php fasse office de serveur pour un transfert FTP, il faut le coder soit même, et c'est plutôt coton, si c'est possible…

Petit nouveau ! | 6 Messages

18 août 2007, 23:45

Merci pour tous ces renseignements

Comme je l'ai dit precedement l'upload de ma photo qui fait plus de 2Mo est fait sans probleme

ensuite dans mon code je fais le rendimensionnement

- pour les images en 1280*960 et environ 600 Ko =>pas de pb
- pour les images en 2816*2112 et environ 2,5 Mo => Pb

Le "bug" se fait au moment de imagecreatefromjpeg

Si quelqu'un peut m'expliquer ??

J'ai egalement utilisé set_time_limit sans succes mais comment faire pour savoir si la fonction fonctionne correctement (j'ai mi un or die mais rien ne se passe?)

J'espere que vous allez pourvoir m'aider avec ces informations

Guillaume

ViPHP
ViPHP | 5924 Messages

19 août 2007, 01:58

Ca peut venir de la limite de ram de php.
Il y a une directive de compilation qui limite l'utilisation de la ram pour chaque script.
http://www.php.net/manual/fr/ini.core.p ... mory-limit

ViPHP
AB
ViPHP | 5818 Messages

19 août 2007, 03:51

oui, et pour modifier cette valeur tu peux essayer par exemple en début de script
ini_set('memory_limit', 10000000);
pour allouer 10000000 d'octets à ton script.

Mais comme mentionné précédemment cela peut être nécessaire ou pas et possible ou pas suivant la configuration du serveur.

ViPHP
ViPHP | 5924 Messages

19 août 2007, 04:09

NB : Apparement, on peut aussi utiliser les K, M, G, … (parce que 10000000 c'est pas forcément parlant) http://www.php.net/manual/fr/faq.using. ... thandbytes
Donc un truc comme
ini_set('memory_limit', '10M');
est à tester…

Sinon, notons aussi que cette directive est à utiliser le plus modérément possible, l'augmenter signifie augmenter la charge du serveur, donc mettre en cause la stabilité du serveur ou de l'ordinateur personnel lorsque c'est un serveur local, donc de risquer d'immobiliser ou de crasher les autres services voire le machine elle même si le script est mal codé.

Petit nouveau ! | 6 Messages

20 août 2007, 09:59

Bonjour a tous

Encore merci pour ces renseignement.

Quand je mets:
ini_set('memory_limit', 10000000);
j'obtiens l'erreur suivante:

Fatal error: Allowed memory size of 10000000 bytes exhausted (tried to allocate 11264 bytes) in /homepages/1/d213368580/htdocs/admin/redim.php on line 19

Pourtant dans phpinfo c'est marqué "enable-memory-limit" ce qui semble signifié (si j'ai bien compris d'apres la doc de "memory-limit") que je peux modeifier la valeur de la memoire

Est ce que je me trompe ??

ViPHP
ViPHP | 5924 Messages

20 août 2007, 13:02

ini_set('memory_limit', 10000000);
est justement la fonction qui modifie cette limite.
Si tu as ce message d'erreur, c'est que tu dépasses encore la limite. Il faut que tu la montes encore, mais tout en respectant mes conseils de prudence…

Petit nouveau ! | 6 Messages

20 août 2007, 22:26

Merci de ta reponse

Quand j'augmente la valeur je n'est plus l'erreur mais cela ne change rien la fonction "imagecreatefromjpeg" ne fonction toujours pas

Je suis monté jusqu'a 100000M

Est ce que la valeur est remis a la normale à la fin du script ???

PS: Quand tu mets 100G il ne comprends pas il croit que c'est juste des bytes

Je ne voit pas quoi essayer de plus Avez vous des idees??

Guillaume

ViPHP
AB
ViPHP | 5818 Messages

21 août 2007, 04:09

Merci de ta reponse

Quand j'augmente la valeur je n'est plus l'erreur mais cela ne change rien la fonction "imagecreatefromjpeg" ne fonction toujours pas

Je suis monté jusqu'a 100000M

Est ce que la valeur est remis a la normale à la fin du script ???

PS: Quand tu mets 100G il ne comprends pas il croit que c'est juste des bytes

Je ne voit pas quoi essayer de plus Avez vous des idees??

Guillaume
Ah oui tu veux réserver 100000M de mémoire sur un serveur mutualisé :?: Heureusement que Sékiltoyai t'avais dit d'être prudent!

Il est très possible que ce que tu veuilles faire dépasse les possibilités de ton serveur. Peut-être devrais-tu demandé conseil aux administrateurs (ton hébergeur). Comme je l'ai mentionné à plusieurs reprises, la grande majorité des serveurs ne permettent pas ces configurations.

Petit nouveau ! | 6 Messages

21 août 2007, 08:58

Je vais voir avec mon hebergeur

AB j'ai le meme script que toi, est-ce que ca marche pour toi avec des grandes photos ???

Sinon comment je peux faire pour savoir de combien de memoire j'ai besoin exactement pour faire ce que je veux???

ViPHP
AB
ViPHP | 5818 Messages

21 août 2007, 23:12

Avec le script que j'ai donné précédemment (les images sont déjà sur le serveur)

1/ Photo jpeg de 4 Mo de 3504px * 2587px redimensionnée en 400px de largeur sans pb

2/ Photo jpeg de 13 Mo de 3504px * 2587px redimensionnée en 400px de largeur sans pb

Je n'ai fait aucun réglage concernant la config sur le serveur mutualisé. J'ai simplement fait un copier collé du script de redimentionnement - le même que tu dois avoir.

Pour la photo de 13 Mo il a fallut patienter moins d'une dizaine de seconde avant la fin de l'exécution du script.

Petit nouveau ! | 6 Messages

22 août 2007, 11:25

Ok, mais en tout cas pour moi ca ne marche pas

Ca bloque toujours au meme endroit

Tu as quoi comme hebergement?? Je suis chez 1and1 et j'ai pris le pack perso confort

Encore merci pour tout ces renseignements