Modifier le nom d'un fichier en gardant l'extension

psitt64
Invité n'ayant pas de compte PHPfrance

27 août 2009, 09:33

bonjour,

je suis débutant est j'ai un projet de upload des fichiers avec l'addresse mail que la personne aura tapé sur le site . Mais je doit rajouter un plus "+" avant l'extension.Sachant que l'extension est jamais la même mais on c'est quel fait 3 caractères.



voici un morceau de la fonction
(move_uploaded_file($_FILES['iso']['tmp_name'], "c:/Francais/" . $email."+.iso"))

L'inconvénient de cette fonction c'est qu'il change mon extension automatiquement en iso est je voudrai qui garde le même extension que d'origine:

exemple
j'ai un fichier xp.nrg si je l'upload à la fin j'ai un fichier qui se nomme adressemail.iso alors que je voudrai adressemail.nrg

Quelqu'un pourrai m'aider? En vous remerciant d'avance.
david

Mammouth du PHP | 991 Messages

27 août 2009, 13:08

Voici une fonction qui t'aidera :
function ext ($nomFichier)
{
$array = explode('.' , $nomFichier);
return array_pop($array); // array_pop permet de retourner le dernier élément d'un tableau , donc l'extension du fichier fournit 
}
Qui s'utilise comme ceci :
echo ext('jesuisunfichier.iso'); // Retournera iso.

(move_uploaded_file($_FILES['iso']['tmp_name'], "c:/Francais/" . $email."+.iso"))
deviendrait :
move_uploaded_file($_FILES['iso']['tmp_name'], "c:/Francais/" . $email.'+.'.ext($_FILE['iso']['name']))
Code fait de tête , en théorie cela marche :D ... en théorie
Bye Hawk
DevOps, Symfony4, Hoa

psitt64
Invité n'ayant pas de compte PHPfrance

27 août 2009, 14:07

Quand je remplace ma ligne : (move_uploaded_file($_FILES['iso']['tmp_name'], "c:/Francais/" . $email."+.iso"))
par ta ligne sa fonctionne pas : (move_uploaded_file($_FILES['iso']['tmp_name'], "c:/Francais/" . $email.'+.'.ext($_FILE['iso']['name']))

je vois pas a quoi sa peut servir
function ext ($nomFichier)
{
$array = explode('.' , $nomFichier);
return array_pop($array); // array_pop permet de retourner le dernier élément d'un tableau , donc l'extension du fichier fournit
}

echo ext('jesuisunfichier.iso'); // Retournera iso.

Eléphant du PHP | 199 Messages

27 août 2009, 17:14

La fonction basename() en php retourne seulement le nom du fichier sans l'extension.
Ca peut t'aider dans ta recherche je pense.

Mammouth du PHP | 991 Messages

27 août 2009, 17:39

La fonction prend le nom du fichier,
le coupe en fonction du .
et retourne le dernier element donc par conséquent l'extension du fichier d'origine.

Montre moi comment tu as implanter le code que je t'ai fourni le tout entre les balise

Merci Hawk
DevOps, Symfony4, Hoa