Recuperer seulement le nom du ficher dans un champ File

Recuperer seulement le nom du ficher dans un champ File - PHP - Programmation

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 :
 

Code :
  1. <input type=file name="A">


et ensuite recuperer le nom avec "A_name"

Reply

Marsh Posté le 12-01-2005 à 11:57:12   

Reply

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...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

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

Reply

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
 
ca merde quand je le fait


 
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...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 12-01-2005 à 13:13:14    

desolé
 
en fait jai fait ca :
f est le nom du champ parcourir
 

Code :
  1. $l1 = $f["basename"];
  2. $sql = "INSERT INTO produits(Id,logo1) Values('','$l1')";


mais ca prend pas

Reply

Marsh Posté le 12-01-2005 à 13:46:16    

j'aurais plutot vu un truc du genre:
 

Code :
  1. $l1 = basename($_POST['f']); //(si f est le nom du champ)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

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

Reply

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.

Reply

Marsh Posté le 12-01-2005 à 13:58:33    

echo basename($_FILES['A']['name']);


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

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

Reply

Marsh Posté le 12-01-2005 à 14:01:35   

Reply

Marsh Posté le 12-01-2005 à 14:05:04    

echo basename($_FILES['f']['name']);


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 12-01-2005 à 14:07:13    

ca ne maffiche rien

Reply

Marsh Posté le 12-01-2005 à 14:13:21    

:sleep:  
 
code


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

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 :
  1. $l1 = basename(str_replace ("\", "/", $_POST['f'])); //(si f est le nom du champ)


 
EDIT: et en meme temps je suis quand meme pas loin de te dire RTFM ;)


Message édité par Xav_ le 12-01-2005 à 14:16:36

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

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']);
 

Reply

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']));

Reply

Marsh Posté le 12-01-2005 à 14:23:24    

jai rien dis ca marche
merci a vous

Reply

Marsh Posté le 12-01-2005 à 14:25:31    

nycius a écrit :

jai rien dis ca marche
merci a vous


 
petit galopin, que je t'y reprenne pas...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 12-01-2005 à 14:26:46    

:)

Reply

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 :
  1. $l1 = basename(str_replace("\\", "/", $_GET['f']));
  2. $dossier = '/img/';
  3. copy(str_replace("\\","/",$_GET['f']), $dossier.$l1);


 
seulement ca ne marche pas
jai une erreur

Reply

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 ???


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

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);

Reply

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...


Message édité par Xav_ le 12-01-2005 à 14:56:26

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 12-01-2005 à 14:56:47    

en fait jai mis le dossier en dur
$dossier = '/prod/img/';

Reply

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 ?

Reply

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/


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

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
 
?

Reply

Marsh Posté le 12-01-2005 à 15:04:35    

Citation :

Code :
  1. str_replace("\\","/",$_GET['f'])



 
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 :
  1. str_replace("//","\",$_GET['f'])



---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

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']);
 

Reply

Marsh Posté le 12-01-2005 à 15:09:47    

copy(str_replace("//","\",$_GET['f']), $dossier.$l1);


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 12-01-2005 à 15:12:00    

tj le meme message derreur

Reply

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...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 12-01-2005 à 15:17:30    

maintenant jai cette erreur :(
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING

Reply

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 :
  1. <?
  2. $toto='C://Documents and Settings//Mickaël_PC//Mes documents//index2.html';
  3. echo str_replace("//", "\\", $toto);
  4. ?>


 
ça m'affiche:
C:\Documents and Settings\Mickaël_PC\Mes documents\index2.html


Message édité par Xav_ le 12-01-2005 à 15:28:51

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

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

Reply

Marsh Posté le 12-01-2005 à 15:30:10    

lis mon post d'au-dessus...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

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

Reply

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 :P 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...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 12-01-2005 à 15:37:05    

ok merci bcp de mavoir aidé :)

Reply

Marsh Posté le 12-01-2005 à 15:40:46    

echo str_replace("\\", "\\", $toto);
ça doit meme pouvoir le faire...


Message édité par Xav_ le 12-01-2005 à 15:41:11

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed