Recuperer seulement le nom du ficher dans un champ File - PHP - Programmation
Marsh Posté le 12-01-2005 à 12:17:06
doc PHP, ya une fonction a qui tu file une URL et qui te retourne un tableau avec 3 valeurs:
tab[0]: chemin
tab[1]: nom du fiecher avec extension
tab[2]: extension seul
regarde les fonctions basename et pathinfo...
Marsh Posté le 12-01-2005 à 12:42:22
basename marche bien
seulement je narrive pas avec le form a recuperer le nom du champ file et ensuite le passer en basename
ca merde quand je le fait
Marsh Posté le 12-01-2005 à 12:59:26
Citation : seulement je narrive pas avec le form a recuperer le nom du champ file et ensuite le passer en basename |
tu ne donne pas le message d'erreur, ni le srcipt en cause, je veux bien aider mais ma boule de cristal étant tombé en panne hier...
Marsh Posté le 12-01-2005 à 13:13:14
desolé
en fait jai fait ca :
f est le nom du champ parcourir
Code :
|
mais ca prend pas
Marsh Posté le 12-01-2005 à 13:46:16
j'aurais plutot vu un truc du genre:
Code :
|
Marsh Posté le 12-01-2005 à 13:48:22
ca ne marche pas
ca me donne cela : C:\\Documents and Settings\\Mickaël_PC\\Mes documents\\index2.html
Marsh Posté le 12-01-2005 à 13:57:01
déja tu peux désactiver les magic_quote dans ton php.ini pour ne pas avoir les \\.
Ensuite essaie toujours avec la fonction explode et la dernière valeur du tableau sera le nom de ton fichier.
Marsh Posté le 12-01-2005 à 13:58:33
echo basename($_FILES['A']['name']);
Marsh Posté le 12-01-2005 à 14:01:35
simogeo a écrit : echo basename($_FILES['A']['name']); |
je fais ?
basename($_FILES['A'][f]);
f etant le nom de mon champ
Marsh Posté le 12-01-2005 à 14:05:04
echo basename($_FILES['f']['name']);
Marsh Posté le 12-01-2005 à 14:13:21
code
Marsh Posté le 12-01-2005 à 14:15:14
si tu matte la doc PHP de basename tu verra:
Citation : Sous Windows, les caractères (/) et anti-slash (\) sont utilisés comme séparateurs de dossier. Sous les autres OS, seul le caractère slash (/) est utilisé. |
donc tu ajoute un str_replace pour remplacer les "\" par des "/" et ensuite tu fait le basename
Code :
|
EDIT: et en meme temps je suis quand meme pas loin de te dire RTFM
Marsh Posté le 12-01-2005 à 14:15:15
jai affiché ca lorsque le formulaire ce declenche pour voir le nom du fichier
echo basename($_FILES['f']['name']);
Marsh Posté le 12-01-2005 à 14:20:17
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/velostoc/www/admin/aj7.php on line 4
ligne 4 :
$l1 = basename(str_replace ("\", "/", $_GET['f']));
Marsh Posté le 12-01-2005 à 14:25:31
nycius a écrit : jai rien dis ca marche |
petit galopin, que je t'y reprenne pas...
Marsh Posté le 12-01-2005 à 14:40:57
desole de vous deranger encore mais ce script avait pour but de copier une image selectionné dans un dossier sur le ftp
alors jai fait ca :
Code :
|
seulement ca ne marche pas
jai une erreur
Marsh Posté le 12-01-2005 à 14:49:16
Citation : jai une erreur |
tjs pas eu le temps faire réparer ma boule de crystal, c'est quoi l'erreur ??? quelle lign mise en cause ???
Marsh Posté le 12-01-2005 à 14:51:55
Warning: copy(C://Documents and Settings//Mickaël_PC//Mes documents//index2.html): failed to open stream
ligne 11 : copy(str_replace("\\","/",$_GET['f']), $dossier.$l1);
Marsh Posté le 12-01-2005 à 14:55:16
echo $dossier."/n";
echo $l1;
juste avant la ligne 11 pour voir quel chemin tu es en train de lui filer....
EDIT: non je suis un boulet, le chemin on l'a dans le message d'erreur...
Marsh Posté le 12-01-2005 à 14:56:47
en fait jai mis le dossier en dur
$dossier = '/prod/img/';
Marsh Posté le 12-01-2005 à 15:01:08
C://Documents and Settings//Mickaël_PC//Mes documents//index2.html
en fait je sais pas pkoi il maffiche cela car jai fait un str replace
normalement il devrait me donner
C:\Documents and Settings\Mickaël_PC\Mes documents\index2.html ?
Marsh Posté le 12-01-2005 à 15:01:11
kler, que pour le serveur, écrire sur:
C://Documents and Settings//Mickaël_PC//Mes documents//
c'est pas comme écrire sur:
/prod/img/
Marsh Posté le 12-01-2005 à 15:03:21
pourtant avec le str replace ca devrait me donner :
C:\Documents and Settings\Mickaël_PC\Mes documents\index2.html
?
Marsh Posté le 12-01-2005 à 15:04:35
Citation :
|
pour tranbsformer:
C://Documents and Settings//Mickaël_PC//Mes documents//index2.html
en
C:\Documents and Settings\Mickaël_PC\Mes documents\index2.html
j'aurais plutot dis:
Code :
|
Marsh Posté le 12-01-2005 à 15:07:30
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING on line
line 10 : echo str_replace("//","\",$_GET['f']);
Marsh Posté le 12-01-2005 à 15:09:47
copy(str_replace("//","\",$_GET['f']), $dossier.$l1);
Marsh Posté le 12-01-2005 à 15:15:51
essai:
copy(str_replace("//"","\",$_GET['f']), $dossier.$l1);
peut etre que le slash échappe la 2_ème quote...
Marsh Posté le 12-01-2005 à 15:17:30
maintenant jai cette erreur
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING
Marsh Posté le 12-01-2005 à 15:25:46
autant pour moi, c'est lautre qui échappe:
copy(str_replace("//","\\",$_GET['f']), $dossier.$l1);
testé ya 2 sec:
Code :
|
ça m'affiche:
C:\Documents and Settings\Mickaël_PC\Mes documents\index2.html
Marsh Posté le 12-01-2005 à 15:28:56
alors jai mis ca :
copy(str_replace("\\","\"",$_GET['f']), $dossier.$l1);
et jobtient ca :
Warning: copy(C:""Documents and Settings""Mickaël_PC""Mes documents""html.html): failed to open stream: No such file or directory
Marsh Posté le 12-01-2005 à 15:30:10
lis mon post d'au-dessus...
Marsh Posté le 12-01-2005 à 15:32:39
oui seulement $_GET['f'] me renvoi : C:\\Documents and Settings\\Mickaël_PC\\Mes documents\\Untitled-3.htm
Marsh Posté le 12-01-2005 à 15:36:37
ben peut etre qu'avec tous les exemples que je viens de faire avec toi tu vas arriver à trouver tout seul paske j'ai malheureusement un métier que j'ai bcp délaissé pour essayer de t'aider...
Je repasse un peu plus tard pour voir si tu bloque tjs, je verrai ce que je peux faire...
Mais tu es tout proche, il faut trouver les bons "\" et quote pour éviter que ça échappe au mauvais endroit...
Marsh Posté le 12-01-2005 à 15:40:46
echo str_replace("\\", "\\", $toto);
ça doit meme pouvoir le faire...
Marsh Posté le 12-01-2005 à 11:57:12
salut
dans un formulaire jai un champ parcourir
je voudrais stocker dans une base le nom du fichier enregistré
mais seulement le nom et pas le chemin complet
jai essayé ca mais ca marche pas :
et ensuite recuperer le nom avec "A_name"