web-dev-qa-db-fra.com

Fichier à télécharger depuis le serveur IIS7 avec # dans le nom du fichier

J'utilise IIS 7 serveur Web et j'obtiens une erreur 404 lorsque je tente de télécharger un fichier portant le symbole #, n'importe où dans le nom du fichier.

http://www.server.com/files/my#filename.doc <- ne télécharge pas mène à l'erreur 404.

Si je supprime le symbole #, cela fonctionne correctement.

Quelqu'un peut-il suggérer pourquoi cela se produit et s'il existe une solution de contournement?

Merci

2
Khalid Rahaman

Voulez-vous dire que le # est présent dans le nom du fichier lui-même?

Le # est un caractère significatif dans le schéma d'URL ( voir RFC 3986 ). Il sépare le chemin de l'URL du fragment id .

Il se peut que vous deviez échapper à l'octothorpe.

2
Cheeso

Vous devez y échapper pour %23.

Donc ça devrait être:

http://www.server.com/files/my%23filename.doc

1
vcsjones

Je suis d'accord avec les réponses précédentes d'échapper le symbole '#' à '% 23'. Lorsque vous traitez avec des noms de fichiers sur un site Web, il est également judicieux d'éviter d'utiliser des caractères spéciaux et des espaces pour éviter les problèmes de compatibilité. En outre, du point de vue du référencement, prenons l'exemple suivant:

http://mydomain.com/ThisIsMyKeywordFileName.pdf

Certains moteurs de recherche pourront analyser un mot-clé en dehors de ce nom de fichier, mais d'autres détermineront que 'thisismykeywordfilename' est un mot. Si vous le changez comme suit:

http://mydomain.com/This-Is-My-Keyword-File-Name.pdf

Les moteurs de recherche pourront alors décomposer les mots-clés de vos noms de fichiers. Si vous utilisez des espaces dans le nom du fichier, vous pouvez vous retrouver avec une URL codée dans votre barre d'adresse qui ressemble à ceci:

http://mydomain.com/This%20Is%20My%20Keyword%20File%20Name.pdf .

Ce qui n'est pas réel agréable à regarder. Lorsque vous échappez le symbole '#', vous obtiendrez des noms de fichiers échappés ressemblant à l'exemple ci-dessus. Une bonne stratégie, dans la mesure du possible, serait de simplifier le nommage de vos fichiers. Sinon, vous devez utiliser des caractères spéciaux masqués.

1
Rob

Vous pouvez essayer d’encoder le nom du fichier comme suit.

http://www.server.com/files/my%23filename.doc

0
Kibbee