Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 26/05/2011, 13h34   #1
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 405
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2006
Messages : 405
Points : 531
Points : 531
Envoyer un message via MSN à amoiraud
Par défaut Import d'un CSV en 2 étapes

Bonjour à tous,

Comme le titre l'indique, j'aimerai permettre l'import d'un fichier CSV en 2 étapes, d'abord l'utilisateur spécifierait le lien du fichier via un input file classique, ensuite mon script lit les entêtes du fichier et demande à l'utilisateur de faire la correspondance entre les entêtes et les champs de la base (cela pour na pas être obligé d'avoir les colonnes dans le bon ordre et pour permettre d'ignorer certaines colonnes du fichier).

Le problème est pour réimporter une deuxième fois le fichier, j'ai essayé de remettre un input de type file en display none mais je n'arrive pas à le récupérer dans la page suivante :

Code :
1
2
3
 
<input type="file" value="<?php echo $_FILES['csvFile']['tmp_name']; ?>" style="display: none" />
<input type="submit" value="Valider" />
J'ai essayé avec tmp_name, name, j'ai aussi essayé de mettre le tableau $_FILES['csvFile'] au complet, mais à chaque fois lorsque j'essaye de le récupérer dans la page suivante la variable $_FILES est NULL.

Quelqu'un aurait une idée ?
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 14h00   #2
Membre régulier
 
Homme
Développeur Web
Inscription : octobre 2009
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Vietnam

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2009
Messages : 72
Points : 99
Points : 99
Que renvoie var_dump ($_FILES) sur la 2eme page ?
matlow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 14h07   #3
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 405
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2006
Messages : 405
Points : 531
Points : 531
Envoyer un message via MSN à amoiraud
Citation:
Envoyé par matlow Voir le message
Que renvoie var_dump ($_FILES) sur la 2eme page ?
Je viens de me rendre compte que j'avais oublié de donner un name à mon input file (le 2eme), maintenant quand je valide j'ai ca :

Citation:
array(1) { ["csvFile"]=> array(5) { ["name"]=> string(0) "" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(4) ["size"]=> int(0) } }
EDIT : L'erreur 4 correspond à "no file was uploaded"
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 14h10   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Tu ne peux pas forcer une valeur sur un input file, pour des raisons de sécurité.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 14h12   #5
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 405
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2006
Messages : 405
Points : 531
Points : 531
Envoyer un message via MSN à amoiraud
Citation:
Envoyé par Séb. Voir le message
Tu ne peux pas forcer une valeur sur un input file, pour des raisons de sécurité.
Salut Seb,
Il me semble pourtant qu'un collègue avait déjà fait un import CSV en 2 étapes dans le même but de gérer la correspondance entre les entêtes et les champs de la base, le problème est qu'il ne bosse plus ici et que je ne retrouve pas ce fameux code.
Tu sait comment je pourrait faire sans passer par un deuxième input file ?

EDIT : Bon et bien en fait j'ai trouvé une solution toute simple, un move uploaded file pour enregistrer le CSV dans un dossier d'upload, et je lui passe le name dans un hidden, ensuite fopen sur dossier/$name et le tour est joué.
Merci quand même pour vos réponses
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h47.


 
 
 
 
Partenaires

Hébergement Web