Rechercher : dans
Par :

[HTML]input file : compatibilité browsers

Dernière réponse le 26 jun 2006 à 11:19:52 Assuryan, le 11 jan 2006 à 14:23:19 
 Signaler ce message aux modérateurs

Bonjour,

J'ai donc un bouton "Parcourir" pour recuperer un fichier :
<form method="post" action="load.php">
<b>Fichier : </b>
<input type="file" name="file_csv" >
<br><input type="submit" value="Valider" />

Seulement le probleme est que sous IE, tout marche sans probleme car je recupere dans la variable $_POST['file_csv'] l'adresse complete.

Hors avec FireFox, je ne recupere que le nom du fichier (rapport.csv) et donc ne peux lire le fichier.

Comment faire ?

Merci d'avance de votre aide.

Meilleures réponses pour « [HTML]input file : compatibilité browsers » dans :
Téléphones compatibles Freebox VoirVoici une liste non exhaustive de téléphones fonctionnant avec le service Freebox TEL : *Alcatel Audience 22 Alcatel Bilboa 140 Alcatel Bilboa 250 Alcatel Bilboa 490 Alcatel Charade (et chipsets identiques) Alcatel One Touch First 45 Alcatel...
[Firefox] Désactiver/Effacer les suggestions de la awesome bar VoirIl est possible de désactiver la "barre d'adresse intelligente" de Firefox 3. Pour cela : Dans la barre d'adresse, tapez about:config et validez. Dans le champ filtre, tapez browser.urlbar.maxRichResults : Cliquez sur...
Les formulaires HTML VoirIntérêt d'un formulaire Les formulaires interactifs permettent aux auteurs de pages Web de doter leur page web d'éléments interactifs permettant par exemple un dialogue avec les internaute, à la manière des coupons-réponse présents dans certains...
Les liens hypertextes VoirPrésentation des ancrages Les liens hypertextes (ancrages) sont des éléments d'une page HTML (soulignés lorsqu'il s'agit de texte) permettant aux internautes de naviguer vers une nouvelle adresse lorsque l'on clique dessus. Ce sont les liens...

1

NaeiKinDus, le 11 jan 2006 à 16:10:27

<form method="post" action="load.php" enctype="multipart/form-data">

Essaye avec le enctype en plus :)

Répondre à NaeiKinDus

2

Assuryan, le 11 jan 2006 à 22:40:51

Déjà essayé... :(

Répondre à Assuryan

3

Zep3k!GnO, le 12 jan 2006 à 15:37:51

Tu veux dire qu'avec $_POST['file_csv'] juste ca, sous Ie tu récupères le chemin complet et pas avec un firefox comme client c'est super Zarb' ca. . . Sam & Tone :P

Mais au fait, pourquoi tu veux voir tout le chemin ? !

Zep3k!GnO

Répondre à Zep3k!GnO

4

Assuryan, le 18 jan 2006 à 16:44:13

Oui c'est bien ça. Sous FireFox je ne recupere que le nom du fichier et du coup il ne veut pas me l'ouvir.

Mais maintenant j'ai changé de methode (ou plutot, je DOIS changer de methode) et je veux extraire un fichier CSV posé a une adresse par la methode LOAD DATA INFILE. Voici mon code :
$fichier = ("http://adresse.com/cgi-bin/fichier_csv.cgi?varible1=0");
$requete="LOAD DATA INFILE '" . $load . "'
INTO TABLE concurrence
FIELDS
TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '\"'

IGNORE 1 LINES
(date, num_moteur, moteur, pays_moteur, etc...)";

mysql_query($requete) or die (mysql_error());

Le probleme est que avec un fichier local cela marche sans probleme, mais des que je lui passe l'adresse ou aller chercher le fichier, il veut pas : erreur :

File '\\http://adresse.com/cgi-bin/fichier_csv.cgi?varible1=0' not found (Errcode: 22)

Je ne veux pas telecharger le fichier au prealable car bcp trop long. J'utilise LOAD DATA INFILE au lieu d'INSERT pour la rapidité (avec des INSERT = 1-2 minutes....avec LOAD DATA = 30sec...)

Merci bcp de m'avoir lu et de vos reponses.

Répondre à Assuryan

5

pierox, le 26 jun 2006 à 01:30:43

Bonjour!
j'ai le meme pb
je upload un fichier csv puis je le traite avec fgetcsv

le formulaire :
<form action="" method="post" enctype="multipart/form-data" name="form1">...<input type="file" name="frafp">...<input type="submit" name="Submit" value="Convertir">

l'extraction:
$frafp = $_FILES['frafp']['tmp_name'];
$handle = fopen($frafp,'r');
$code = fgetcsv($handle, 0, ";");

avec IE pas de pb, $code est une variable tableau qui contient les champs.
avec FireFox, $code contient les caractères un à un...
(fait en PHP5)

une solution ?
merci
PA

Répondre à pierox

6

 pierox, le 26 jun 2006 à 11:19:52

Trouvé!

contrairement à ce qui est écrit dans la doc php pour fgetcsv, mettre length à 0 focntionne bien avec IE mais pas avec firefox. solution :
length doit être plus grand que la plus grande ligne (en terme de caractères) à lire dans le fichier (y compris le caractère de fin de ligne).
j'ai mis 4096 et ça marche.

exemple complet :
<html><head></head><body>
<?php
if (isset($_FILES['file'])) {
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file,'r');
$row = 1;
$handle = fopen("$file", "r");
while (($data = fgetcsv($handle, 4096, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
} else {
?><form action="" method="post" enctype="multipart/form-data" name="form1">
<input type="file" name="file">
<input type="submit" name="Submit" value="Envoyer">
</form><?php
}
?></body></html>

Répondre à pierox