Voici un exemple qui ne fonctionne pas avec des noms de fichiers contenant une apostrophe:
Fichier "index.php":
<?php
$validation = $_POST[validation];
if($validation)
{ // s'il y a eu envoi de données au script ...
$uploaddir = 'documents/';
$uploadfile = $uploaddir . basename($_FILES['document']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['document']['tmp_name'], $uploadfile))
{
echo "Le fichier est valide, et a été téléchargé avec succès.\n";
}
else
{
echo "Erreur de téléchargement.\n";
}
echo 'Voici quelques informations de déboguage :';
print_r($_FILES);
echo $_FILES['document']['name'];
echo '</pre>';
}
?>
<body>
<form name="Formulaire" method="post" enctype="multipart/form-data" action="index.php">
<input type="hidden" name="MAX_FILE_SIZE" value="50000000">
<tr><th>Fichier</th><td colspan="5"><input type="file" name="document" size="50"></td></tr>
<input type="hidden" name="validation" value="1">
<input type="submit" name="Submit" value="Envoyer">
</form>
</body>
J'ai créé un fichier texte qui se nomme "aujourd'hui.txt".
Quand te sélectionne ce fichier, le nom retenu et affiché est "hui.txt" et non "aujourd'hui.txt".
Pour info, j'utilise un serveur Apache 1.3.33 et PHP 5.03 