Traitement impossible en php

Bonjour

Je développe pour ma boite une application web, et dans le cahier des charges, il m’est demandé de pouvoir importer des fichiers excel.

J’ai fais quelques (dizaines de) recherches et j’ai trouvé ça.

Ce bout de code fonctionne parfaitement, même si j’ai du faire quelques modifications, mais, car il y a toujours un ‘mais’, le traitement, savoir récupérer les valeurs dans chaque case de chaque feuille pour ensuite l’afficher sous la même forme que dans le fichier, ne semble pas s’effectuer quand le fichier dépasse 4 Mo.

Pensant que cela venait du l’interpréteur PHP, j’ai repoussé le timeout à 30 minutes (ainsi que le timeout CGI), sans grand succès.

Cela fait 3 jours que je suis dessus et je commence à désespérer.

Alors si il y a une âme charitable … elle sait quoi faire et la remercie d’avance !
Edité le 06/06/2011 à 16:44

C’est un fichier que tu upload ? Si oui, voir avec la limite max d’upload (http://fr2.php.net/manual/fr/ini.core.php#ini.upload-max-filesize)

Et sinon, éventuellement la mémoire allouée à chaque processus PHP (memory_limit). Je te recommande chaudement de tester la première, puis éventuellement la seconde que je mettrai en directive dans le fichier PHP si possible et non en configuration générale.

le max de l’upload est à 20 Mo, donc ce ne doit pas être ça.

Question : comment mettre en directive ?

J’ai pas cherché à comprendre, j’ai mis memory_limit = 1526, et ca passe crème !

Ce n’est pas une bonne idée ci étant. Si tu as un script (vraiment) mal codé, il peut bouffer et saturer toute la mémoire du serveur. Pas cool, donc.

Apparemment, la consommation de mémoire n’est pas excessive (100 à 200 Mo suivant la taille du fichier).

Mais pour plus de sécurité, je procède à des dizaines de tests (taille du fichier, caractères, …) et ça a l’air de bien fonctionner