Bonjour à tous,
j'aimerais pouvoir atteindre des données présentes dans un fichier CSV que l'utilisateur de mon site uploadrait via un formulaire afin de les manipuler.
J'ai trouvé quelque chose qui fonctionne bien en procédural mais malheureusement, je n'arrive pas à le faire fonctionner sous cake.
En procédural, ça donne ça :
formulaire:
traitement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <form method="post" action="test.php" enctype="multipart/form-data"> <input type="file" name="test" /> <input type="submit" value="Valider"> </form>
Là pas de soucis j'affiche bien tout ce que je veux ça marche. Maintenant le problème est que j'aimerais faire un peu le même genre de chose avec cake. Mais rien ne marche et je ne ais pas pourquoi. J'ai tenté cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?php $ligne = 1; // compteur de ligne $fic = fopen($_FILES['test']['name'], "a+"); while($tab=fgetcsv($fic,1024,';')) { $champs = count($tab);//nombre de champ dans la ligne en question echo "<b> Les " . $champs . " champs de la ligne " . $ligne . " sont :</b><br />"; $ligne ++; //affichage de chaque champ de la ligne en question for($i=0; $i<$champs; $i ++) { echo $tab[$i] . "<br />"; } } ?>
controller
vue:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php class TestsController extends AppController { var $uses = array('Date'); var $components = array('RequestHandler'); function index() { $ligne = 1; // compteur de ligne $fic = fopen($this->data['Tests']['historique']['name'], 'a+'); $this->set('fic', $fic); } } ?>
Est-ce que quelqu'un peut me m'aider s'il vous plait???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <?php echo $this->Form->create('Tests', array('enctype' => 'multipart/form-data') ); echo $this->Form->file('historique'); echo $this->Form->end('Valider'); if(isset($fic)) { while($tab=fgetcsv($fic,1024,';')) { $champs = count($tab);//nombre de champ dans la ligne en question echo "<b> Les " . $champs . " champs de la ligne " . $ligne . " sont :</b><br />"; $ligne ++; for($i=0; $i<$champs; $i ++) { echo $tab[$i]; } } } ?>
Merci d'avance.
Partager