A voir également:
- [php] récupérer le chemin du fichier
- Fichier rar - Guide
- Recuperer message whatsapp supprimé - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Recuperer video youtube - Guide
8 réponses
ceddec
Messages postés
148
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
10 mars 2012
82
16 août 2005 à 13:20
16 août 2005 à 13:20
Bonjour,
en fait, il est impossible de récupérer le chemin complet. Tu peux uploader le ficiher sur le serveur sans problème mais tu n'auras pas le chemin complet.
Voici le fonctionnement de l'upload :
1 - tu choisi le fichier à uploader (avec un
2 - un fichier temporaire sera créé sur le serveur. La page qui reçoit le formulaire pourra connaitre le nom avec $
3 - pour finir l'upload utilise la commande
Bon courage
en fait, il est impossible de récupérer le chemin complet. Tu peux uploader le ficiher sur le serveur sans problème mais tu n'auras pas le chemin complet.
Voici le fonctionnement de l'upload :
1 - tu choisi le fichier à uploader (avec un
<input type="file" name="fichier">)
2 - un fichier temporaire sera créé sur le serveur. La page qui reçoit le formulaire pourra connaitre le nom avec $
_FILES['fichier']['tmp_name']
3 - pour finir l'upload utilise la commande
rename($_FILES['fichier']['tmp_name'], $_FILES['fichier']['name'])et normalement le fichier sera uploadé au même endroit que le script qui recoit le formulaire (c'est un exemple, tu peux l'uploader où tu veux)
Bon courage
ceddec
Messages postés
148
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
10 mars 2012
82
17 août 2005 à 10:22
17 août 2005 à 10:22
Merci, c'est bon à savoir. J'ai vu la doc dessus et j'ai trouvé (je pense) une erreur dans le script :
Tu as écris
Ta ligne $consti=emplode("é",$prenom); ne pourra pas marcher éfficacement puisque $prenom est une chaine de caractère. Je pense qu'il faudrait plutôt mettre
Bon courage
Tu as écris
<? fichier = "C:\Documents and Settings\Administrateur\Bureau\best.txt" ; $open=fopen($fichier,"r+") or die ("impossible d'ouvrir le fichier!"); print ("le fichier est ouvert!<br>"); while (!feof($open)) { $lire_ligne=fgets($open,255); $extrait=explode(";",$lire_ligne); //chaque fois que l'on rencontre un ; faire $nom=$extrait[0]; //récuperer le nom $prenom=$extrait[1]; //récuperer le prénom $anal_pre=explode(",",$prenom); //dans le prénom si on rencontre une" ," alors $consti=emplode("é",$prenom); } fclose($open); ?>
Ta ligne $consti=emplode("é",$prenom); ne pourra pas marcher éfficacement puisque $prenom est une chaine de caractère. Je pense qu'il faudrait plutôt mettre
$consti=emplode("é",$anal_pre);
Bon courage
Salut tout le monde,
j'ai réussi à récupérer le chemin du fichier, et voilà mon script :
Mon formulaire :
<html>
<head></head>
<body>
<form action="action_browse.php" method=post ENCTYPE="multipart/form-data">
<b>Choisissez le fichier</b><br>
<input name="abo" type=file size=60><br>
<input type=submit value="OK">
</form>
</body>
</html>
Mon fichier action_browse.php:
<?
if ($_FILES[abo] !="") {
@copy($_FILES[abo][tmp_name], "c:\uploadfiles".$_FILES[abo][name]) or die("Couldn't copy the file.");
} else {
die(mysql_error());}
print ($_FILES[abo][tmp_name]);
$path = $_FILES[abo][tmp_name];
$open = fopen($path,"r+");
$lire_ligne = fgets($open,255);
print ("$lire_ligne");
print ("<br>Oprération réussie<br>");
print ("ok");
?>
Ca marche très bien, mais ce que je comprends pas c'est qu'il y a toujours la ligne :
Notice: Use of undefined constant tmp_name - assumed 'tmp_name' in "mon chemin" on line 7
qui est afficher, est-ce que c'est une erreur ou juste un avertissement? comment peut-on le résoudre?
Merci d'avance ! chao!
j'ai réussi à récupérer le chemin du fichier, et voilà mon script :
Mon formulaire :
<html>
<head></head>
<body>
<form action="action_browse.php" method=post ENCTYPE="multipart/form-data">
<b>Choisissez le fichier</b><br>
<input name="abo" type=file size=60><br>
<input type=submit value="OK">
</form>
</body>
</html>
Mon fichier action_browse.php:
<?
if ($_FILES[abo] !="") {
@copy($_FILES[abo][tmp_name], "c:\uploadfiles".$_FILES[abo][name]) or die("Couldn't copy the file.");
} else {
die(mysql_error());}
print ($_FILES[abo][tmp_name]);
$path = $_FILES[abo][tmp_name];
$open = fopen($path,"r+");
$lire_ligne = fgets($open,255);
print ("$lire_ligne");
print ("<br>Oprération réussie<br>");
print ("ok");
?>
Ca marche très bien, mais ce que je comprends pas c'est qu'il y a toujours la ligne :
Notice: Use of undefined constant tmp_name - assumed 'tmp_name' in "mon chemin" on line 7
qui est afficher, est-ce que c'est une erreur ou juste un avertissement? comment peut-on le résoudre?
Merci d'avance ! chao!
Salut, merci de ton aide, j'ai fini le truc.
Mais j'ai une autre question, comment peut-on se placer à la deuxième ligne du fichier?
Merci d'avance et bonne journée à tous!
Mais j'ai une autre question, comment peut-on se placer à la deuxième ligne du fichier?
Merci d'avance et bonne journée à tous!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ceddec
Messages postés
148
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
10 mars 2012
82
18 août 2005 à 10:27
18 août 2005 à 10:27
Bonjour,
Je ne sais pas s'il y a une fonction qui permet de lire ligne par ligne. Par contre comme une ligne se termine par un retour chariot, tu peux faire ca
calculer la position du retour chariot (strpos)
lire ce nombre de caractère (fread(fichier, nombre))
et la tu seras au début de la 2eme ligne
Autre solution : Tu transforme le fichier en un tableau où chaque case correspond à une ligne du fichier et à partir de là, tu peux faire ce que tu veux. (Les explications : http://www.phpindex.com/articles/articles_lire.php3?element=343 )
Bon courage
Je ne sais pas s'il y a une fonction qui permet de lire ligne par ligne. Par contre comme une ligne se termine par un retour chariot, tu peux faire ca
calculer la position du retour chariot (strpos)
lire ce nombre de caractère (fread(fichier, nombre))
et la tu seras au début de la 2eme ligne
Autre solution : Tu transforme le fichier en un tableau où chaque case correspond à une ligne du fichier et à partir de là, tu peux faire ce que tu veux. (Les explications : http://www.phpindex.com/articles/articles_lire.php3?element=343 )
Bon courage
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
16 août 2005 à 12:12
16 août 2005 à 12:12
Toutes les informations sur le chargement des fichiers se trouve ici
http://php.easynet.be/manual/fr/features.file-upload.php
Notons que fopen demande effectivement un second argument:
http://php.easynet.be/manual/fr/function.fopen.php
Johan
http://php.easynet.be/manual/fr/features.file-upload.php
Notons que fopen demande effectivement un second argument:
http://php.easynet.be/manual/fr/function.fopen.php
Johan
Je te remercie beaucoup,
en suite, pour lire ligne par ligne j'utilise la méthode suisvante :
<? //Je lit le fichier
$fichier = "chemin"; $open =fopen($fichier,"r+");
while(!feof($open)) {
$lire_ligne = fgets($open,255); // je lis toutes les lignes du fichier !
print("$ligne<br>"); //je l'imprime
}
Voilà ce que j'ai fait pour parcourir le fichier ligne par ligne, je ne sais pas si c'estait ce que tu voulais dire mais au cas où ca peut t'etre util...
Salut !
en suite, pour lire ligne par ligne j'utilise la méthode suisvante :
<? //Je lit le fichier
$fichier = "chemin"; $open =fopen($fichier,"r+");
while(!feof($open)) {
$lire_ligne = fgets($open,255); // je lis toutes les lignes du fichier !
print("$ligne<br>"); //je l'imprime
}
Voilà ce que j'ai fait pour parcourir le fichier ligne par ligne, je ne sais pas si c'estait ce que tu voulais dire mais au cas où ca peut t'etre util...
Salut !
up
Cette solution marche parfaitement, je m'en suis servi pour faire un import de données depuis un fichier csv vers ma base de données mais je rencontre un souci pour l'export de données depuis la base vers un fichier csv.
Avant je travaillais en local et l'export marchais parfaitement mais depuis que je cherche à le faire sur le réseau cela ne fonctionne plus (ni en local ni sur le résau).
J'ai bien ajouter le "ENCTYPE='multipart/form-data'" dans le <from> et je récupère bien le fichier ($fichier = $_FILES['chemin_export']['tmp_name'];) mais il y a un souci soit a l'ouverture soit a l'écriture. (enfin je pense ^^)
mon open : $fic = fopen ($fichier, 'w'); // peut etre que w ne convient pas ...
mon write : fwrite($fic, $contenu); // me renvoit "int(165333)" donc il a bien les données mais ne les écrits pas :s
Voila, si vous avez une solution je suis preneur =)
PS : Je bosse avec Wampserveur 2 et avec IE7
Cette solution marche parfaitement, je m'en suis servi pour faire un import de données depuis un fichier csv vers ma base de données mais je rencontre un souci pour l'export de données depuis la base vers un fichier csv.
Avant je travaillais en local et l'export marchais parfaitement mais depuis que je cherche à le faire sur le réseau cela ne fonctionne plus (ni en local ni sur le résau).
J'ai bien ajouter le "ENCTYPE='multipart/form-data'" dans le <from> et je récupère bien le fichier ($fichier = $_FILES['chemin_export']['tmp_name'];) mais il y a un souci soit a l'ouverture soit a l'écriture. (enfin je pense ^^)
mon open : $fic = fopen ($fichier, 'w'); // peut etre que w ne convient pas ...
mon write : fwrite($fic, $contenu); // me renvoit "int(165333)" donc il a bien les données mais ne les écrits pas :s
Voila, si vous avez une solution je suis preneur =)
PS : Je bosse avec Wampserveur 2 et avec IE7
16 août 2005 à 17:24
j'ai une autre question, comment peut-on créer un fichier temporaire sous php?
ce que je voulais faire c'est de corriger quelques fautes dans mon fichier, par exemple, j'ai un fichier text.txt et dedans il y a un ligne : "Goudin;st,phanie"
et je veux que chaque fois que l'on rencontre une virgule on la remplace avec un "é", donc j'ai écrit un script suivant:
<?
fichier = "C:\Documents and Settings\Administrateur\Bureau\best.txt" ;
$open=fopen($fichier,"r+") or die ("impossible d'ouvrir le fichier!");
print ("le fichier est ouvert!<br>");
while (!feof($open))
{
$lire_ligne=fgets($open,255);
$extrait=explode(";",$lire_ligne); //chaque fois que l'on
rencontre un ; faire
$nom=$extrait[0]; //récuperer le nom
$prenom=$extrait[1]; //récuperer le prénom
$anal_pre=explode(",",$prenom); //dans le prénom si on
rencontre une" ," alors
$consti=emplode("é",$prenom);
}
fclose($open);
?>
mais il y a toujours une erreur " Undefined offset: 1" je ne sais pas pourquoi?!
et j'ai pensé que peut-etre si on crée un fichier temporaire pour pouvoir mettre la valeur de $prenom et après de travailler sur ce fichier....
S'il y a quelqu'un a une idée pour moi?! merci beaucoup d'avance !
16 août 2005 à 20:29
déja pour remplacer la virgule par un é utilise plutot strtr() (voir la doc ici : http://www.nexen.net/docs/php/annotee/function.strtr.php?lien=str)
Ensuite, peux tu me dire ce que fais la fonction emplod parceque je ne la connais pas.
Enfin, le script que tu as mis ne mettra pas à jour le fichier puisqu'il n'écrit pas dessus.
Bon courage
17 août 2005 à 09:04
La fonction implode() est le contraire de la fonction explode(). En fait, la fonction explode() exporte les parties séparées par le sépérateur et de les coller dans un tableau à une dimension et la fonction implode() ne fait que les assembler dans une chaine caractere!
voilà un exemple:
<?
$chaine=" toi rat la, yeu em"; //ma chaine
$extrait= explode(",",$chaine); // si je rencontre une , alors faire
$part1= $extrait[0]; //récuperation de deux parties séparées par la virgule
$part2 =$extrait[1];
$implode=implode("",$extrait); //les rassembler!
print("$implode"); //aller on imprime
?>
le résultat de print() --> toi rat la yeu em ( la virgule disparait!).
Merci encore pour ton aide, je vais consulter le site que tu m'as passé.
Chao!