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:
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>
traitement:
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 />";
	}
}
?>
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 :
controller
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);
	}
}
?>
vue:
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];
		}
	}
}
?>
Est-ce que quelqu'un peut me m'aider s'il vous plait???
Merci d'avance.