2009-11-18 6 views
1

J'ai un formulaire de téléchargement de photos. Je dois m'assurer que les images qui contiennent des espaces dans le nom sont remplacées par quelque chose d'autre, je suppose que c'est %.Photos de téléchargement PHP avec espace

-à-dire le nom de l'image est: aa 22.jpg

Si téléchargé cette façon, il ne montre pas à cause de l'espace entre aa et 22. Quel est le moyen de se débarrasser de l'espace ou de le remplacer par % lors du téléchargement?

+0

Vous êtes probablement parler de '% 20' qui est la version codée URL d'un espace. – random

Répondre

5

plutôt que de remplacer le nom de fichier avec une chaîne vide, il est conseillé de le remplacer par un trait de soulignement pour maintenir la lisibilité et le nom réel du fichier dans son sens:

$file = str_replace(' ', '_', $file);

2

tu ne peux pas ...

$filename = str_replace(' ', '', $filename); 

Utilisez-vous un gestionnaire de téléchargement que vous n'avez pas le contrôle?

+0

J'utilise une classe de téléchargement qui serait trop compliquée à changer. Je pensais à quelque chose de plus directement impliqué avec le fichier de téléchargement. – frapet

+2

Lorsque vous utilisez la classe, échoue-t-elle lorsque vous téléchargez un fichier contenant un espace? Si cela échoue, vous devrez corriger la classe elle-même ... si elle réussit et vous renvoie le nom de fichier avec l'espace, utilisez simplement la fonction rename() pour supprimer les espaces ... – Langdon

0

Si le fichier est téléchargé correctement mais n'apparaît pas dans le navigateur, vous pouvez essayer aa%2022.jpg, puisque% 20 est utilisé à la place des espaces dans les URL (et certains navigateurs ne le réaliseront pas automatiquement).

Mais comme c'est moche, vous préférerez peut-être remplacer les espaces par autre chose. Vous pouvez utiliser la fonction str_replace pour y parvenir.

1

vous pouvez utiliser trim($picture) , mais ne savez pas où le mettre, trouver mon moi en ce moment

Questions connexes