2009-07-09 11 views
2

Je travaille sur un programme de base de données utilisant PHP pour garder une trace des produits que nous gérons sur mon lieu de travail.PHP: Comment puis-je lire le contenu d'un fichier .XLS sans l'enregistrer sur le serveur?

Pour ce projet, je dois être en mesure de sélectionner un fichier .XLS qui contient de nouvelles données produit. De nouvelles données se compose des champs suivants:

type CHAR (3), ligne CHAR (2), Nombre INT, Mesure INT, Commentaires VARCHAR (255), Variation CHAR (1) ie (» Y '||' N ')

Ces fichiers sont créés dans Excel ou Google Documents; J'ai trouvé un wonderful excel_reader qui me permet d'extraire les valeurs de ce fichier. Comme il s'agit d'une action qui va se produire de façon routinière, à mesure que de nouveaux produits sont créés, je ne veux pas que le fichier soit stocké dans le répertoire de mon serveur (après un certain temps, il y en aurait des douzaines!). Je préfère que le fichier soit simplement lu, car le script d'importation que j'écris transfère les données du fichier dans un tableau. Ce que je veux vraiment, c'est que l'utilisateur sélectionne l'emplacement du fichier (sur son ordinateur local) via un formulaire HTML, puis que le script enregistre le contenu de ce fichier dans une base de données MySQL sans jamais envoyer le fichier au serveur. Serveur.

J'apprécierais grandement tous les conseils que vous pouvez m'offrir, je ne suis même pas sûr que mon plan est un moyen valable de gérer cette situation.

+0

Eh bien, je suppose que vous écrivez PHP sur le côté serveur? Je ne vois pas comment vous pouvez éviter d'envoyer ce fichier au serveur si vous voulez le traiter dans votre code PHP. Le navigateur connaît plus ou moins simplement le html et le javascript et aucun d'entre eux ne permet d'accéder directement à la base de données. – nos

+0

Je ne vois pas pourquoi cette question a été rejetée. Ce n'est pas une dupe, le PO a de véritables préoccupations et a pris le temps de les présenter clairement dans sa question. De plus, c'est sa première question. Excellente façon de saluer un nouveau venu :( – karim79

Répondre

7

Il devra être stocké, au moins temporairement. Supprimez le fichier après que vous en ayez besoin (sans doute après l'avoir déplacé du répertoire temporaire en utilisant move_uploaded_file, dans le dossier à partir duquel vous le lirez), puis supprimez-le en utilisant unlink.

En dernier point, je serais un peu inquiet au sujet de immédiate suppression des fichiers téléchargés. Que faire si quelque chose ne va pas avec le script pendant l'analyse du fichier et les données stockées dans la base de données? Il serait probablement une bonne idée d'avoir un travail cron qui supprime périodiquement les fichiers, pour être du bon côté, au lieu de les supprimer immédiatement.

+2

Je ne suis jamais assez rapide sur ce site :-) –

+1

+1 pour le travail cron plutôt que la suppression immédiate –

2

Depuis que votre script PHP est en cours d'exécution sur le serveur, le fichier Excel doit être enregistré sur le serveur à lire. Une fois que vous avez lu le fichier et l'avez stocké dans la base de données, il suffit de le supprimer.

0

J'ai trouvé la réponse à ma question here. C'est un joli tutoriel sur le téléchargement, le déplacement, la lecture et la suppression de fichiers en utilisant PHP.

Merci à tous ceux qui ont contribué.

+1

@Clad - vous devez cocher la réponse que vous avez trouvé être le plus utile. – karim79

Questions connexes