2008-11-21 8 views
1

J'ai créé un exemple de script PHP pour télécharger des feuilles Excel de très grandes tailles. Aussi le processus qui se passe avec chaque enregistrement donné dans les feuilles Excel est un peu complexe. Pour permettre des tailles plus grandes, j'ai ajouté les valeurs PHP ini nécessaires dans le fichier de configuration Apache pour remplacer les valeurs ini PHP réelles. Le problème est, une fois que je télécharge les fichiers plus volumineux, cela prend plus de temps, disons 2 minutes environ, après quoi je vois la page blanche au lieu de la page de résultats. Lorsque j'ai suivi les journaux Apache, je n'ai pas vu de telles lignes liées à ce problème.Apache sert page blanche

Je voulais juste savoir, y at-il des cas/possibilités où Apache pourrait servir une page blanche?

Mais lorsque j'ai terminé mes journaux de niveau d'application, il est très clair que le script a parfaitement terminé le travail. Mon suspect, peut-être que ce qui pourrait arriver est, une fois le travail terminé, alors qu'Apache sur le point de retourner à la page de résultats quelque chose serait arrivé, mais je ne suis pas sûr à ce sujet.

Répondre

2

Je suppose que ce n'est pas la faute d'Apache et que votre navigateur vient de temporiser la connexion. Vous pouvez essayer certaines des techniques these et voir si cela aide tout.

1

Est-il possible qu'un "else" -la case n'est pas correctement gérée? Vous pouvez supposer que le fichier a été téléchargé avec succès, mais cela ne signifie pas nécessairement qu'il l'a fait. Avez-vous seulement augmenté le 'upload_max_filesize' ou le 'post_max_size' (le total général de tous vos formulaires: texte d'entrée + fichiers)? Essayez d'ajouter ce qui suit en haut de votre script, pour voir les erreurs ou les avertissements que PHP pourrait afficher.

error_reporting(E_ALL); 
+0

vous pouvez aussi faire ini_set ('display_errors', true); –

+0

Je suis sûr que le script a téléchargé le fichier avec succès et même qu'il termine les tâches qu'il était censé faire. J'ai également écrasé la valeur de la taille post-max dans le fichier apache conf. Tous les indicateurs d'erreur ont été activés. –

-1

Vous pouvez faire deux choses pour éviter ce problème

  1. Demander à l'utilisateur de convertir un fichier Excel dans csv si possible dans votre situation. comme csv sont beaucoup plus légers que la feuille Excel.
  2. essayer tête à l'aide (le « newpage.php ») dans le script pour rediriger l'utilisateur vers nouvelle page
+0

L'exigence est de permettre à l'utilisateur de télécharger à la fois des fichiers csv et Excel. –

0

Si ça va prendre un certain temps pour traiter une demande/téléchargement, vous voudrez peut-être envisager la création d'une file d'attente , où l'utilisateur sait que le fichier a été téléchargé avec succès, et doit juste attendre (peut vérifier le statut sur une page peut-être); et vous avez un processus cronjob/background pour convertir le (s) fichier (s) et les mettre à jour. De cette façon, il ne perd pas du temps pour les utilisateurs.

0

Sons comme un problème de mémoire, essayez memory_limit augmenter ou optimiser votre utilisation de la mémoire

allocation de mémoire/résultats erreurs erreurs de segmentation sur les pages blanches et aucune information du journal.

+0

Assurez-vous que vous avez display_errors = On sur votre php.ini pour voir l'erreur fatale. – Slipo

Questions connexes