nom de fichier avec apostrophe envoyé par formulaire
Posté : 12 sept. 2008, 16:15
Bonjour à tous,
débutant en php, je galère avec ceci:
sur une page index.php, j'ai un formulaire qui permet aux utilisateurs du site d'uploader, via la page upload.php, un fichier quelconque sur le serveur. Seulement voilà, si le nom du fichier comporte une apostrophe, ce dernier apparaitra sur le site sans le début du nom (en fait, plan d'action.pdf devient action.pdf).
Je n'arrive pas à lui faire comprendre que l'apostrophe doit être comprise comme un caractère à part entière.
Dans le php.ini, j'ai magic_quotes_gpc = On.
voici le bout de code de la page upload.php:
d'avance merci à ceux qui me liront
débutant en php, je galère avec ceci:
sur une page index.php, j'ai un formulaire qui permet aux utilisateurs du site d'uploader, via la page upload.php, un fichier quelconque sur le serveur. Seulement voilà, si le nom du fichier comporte une apostrophe, ce dernier apparaitra sur le site sans le début du nom (en fait, plan d'action.pdf devient action.pdf).
Je n'arrive pas à lui faire comprendre que l'apostrophe doit être comprise comme un caractère à part entière.
Dans le php.ini, j'ai magic_quotes_gpc = On.
voici le bout de code de la page upload.php:
<?php
$repertoireDestination = "D:/wamp/www/GROUPEMENT/STSIC/";
$nomDestination = $_FILES["monfichier"]["name"];
// Pour raison de sécurité nous ajouterons aux fichier portant une extension .php .php3, l'extension .txt
if (eregi(".php", $nomDestination)) {
$nomDestination .= ".txt";
}
if(!isset($erreur))
{
$nomDestination = basename($_FILES['monfichier']['name']);
// formatage nom fichier
// enlever les accents
$nomDestination= strtr($nomDestination, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$nomDestination= preg_replace('/([^.a-z0-1]+)/i', '_', $nomDestination);
}
if (is_uploaded_file($_FILES["monfichier"]["tmp_name"])) {
if (rename($_FILES["monfichier"]["tmp_name"],
$repertoireDestination.$nomDestination)) {
echo "Fichier transféré avec succès";
si quelqu'un voulait bien m'aider, ça serait bien sympad'avance merci à ceux qui me liront