Je suis en train de construire quelque chose comme un nuage. Ainsi, les utilisateurs peuvent télécharger du contenu et bien sûr le télécharger à nouveau. À l'heure actuelle, la plupart fonctionnent correctement, mais j'ai remarqué qu'il y a un problème avec les fichiers qui contiennent un «#» dans leur nom.Impossible d'ouvrir le fichier dans le répertoire à cause d'un hashtag
Par exemple, le nom du fichier pourrait être: « Double Couleur # 2.jpg »
Avec la variable « $ placeoffile » Je veux établir un lien direct vers le fichier.
Mon code ressemble à ceci:
<?php
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($file = readdir($dh)) !== false){
if($file != "." && $file != ".."){
$extension = pathinfo($file, PATHINFO_EXTENSION);
$size = filesize($dir.$file);
$placeoffile = $dir.$file;
echo("
<td><a href='$placeoffile'>filename: $file </a></td>
<td>$extension</td>
<td>$size</td>
<td>$placeoffile</td>
<tr>");
}
}
closedir($dh);
}
}
?>
Je reçois l'erreur « Double couleur n'a pas été trouvé sur ce serveur. » donc en quelque sorte tout après le hashtag a été supprimé de la recherche et donc il n'a évidemment pas trouvé.
Essayé htmlspecialchars et preg mais je ne veux pas renommer les fichiers des utilisateurs ou montrer un message d'erreur à eux s'ils téléchargent un fichier avec un nom étrange. J'ai l'impression qu'il y a une solution facile, mais je ne la vois pas. Toute aide? Salutations :)
Après avoir fait ce que vous obtenez l'erreur '" Double couleur n'a pas été trouvé sur ce serveur. "' – RiggsFolly
Lorsque j'ouvre le lien. Habituellement, il me montre l'image ou les données, mais s'il y a un hashtag dans le nom, il montre seulement l'erreur –