Ne télécharge à la volée que les petits fichiers (csv)

Eléphanteau du PHP | 11 Messages

05 août 2008, 10:34

Bonjour

J'ai un truc bizard. J'ai créer un fichier php auquel je passe une chaine de caractère csv (avec les ; et \n), et un nom de fichier.

Fichier php
<?php
	//Permet d'envoyer un fichier au format csv avec le contenu des tableaux

	//Variables
	$contenu = isset($_GET['contenu']) ? (unserialize(urldecode(stripslashes($_GET['contenu'])))) : "Erreur";
	$nomFichier = isset($_GET['fichier']) ? ($_GET['fichier']) : "Erreur.csv";
	
	//Récupération des informations
	
	//Envoi du fichier
	header("Content-Type: text/csv"); // L'extension
	header("Content-disposition: inline; filename=".$nomFichier); //Fichier à envoyer
	header("Pragma: public");
	header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
	header("Cache-Control: private",false);
	header("Content-Length: ".strlen($contenu)); //Taille du fichier
	echo $contenu;
	exit();
?>
Mon problème est que si les données que j'envoi ont trop de lignes (ou peut etre caractère), firefox ne me le télécharge pas ("Ce téléchargement a été bloqué par votre politique de zone de sécurité - localhost"), et ie7 ("Internet explorer ne peut pas afficher cette page web").

Quelqu'un aurais t'il une solution ?

Merci d'avance
TomTom le vendéen

Mammouth du PHP | 684 Messages

07 août 2008, 15:51

Salut,
essaye avec la methode POST au lieu de GET.
Peut etre que c'est lie avec les infos de ce post : http://www.phpfrance.com/forums/voir_sujet-242142.php
Zigz4g

Eléphanteau du PHP | 11 Messages

07 août 2008, 18:25

Merci !!!

La solution est de créer une nouvelle form, puis d'ajouter les variables en input.
En effet car la méthode get n'accepte pas + de 256 caractères apres le nom !!
echo "<br><form class='extract' id='extract' method='post' action='../prg/Extraction.php'>";
Le contenu
//Enregistre dans le fichier
				echo "<input type='hidden' name='contenu' value='".$tabExtract."'>".
				"<input type='hidden' name='fichier' value='Affaires_nouvelles.csv'>".
				"<center><a class='lien' href='".'javascript: onclick=document.getElementById("extract").submit()'."'>Extraction</a></center>".
			"</form><br>";
Voila résolut !!
TomTom le vendéen