Meilleur moyen de gérer un fichier 404 dans un gestionnaire HTTP de téléchargement de fichier?

StackOverflow https://stackoverflow.com/questions/609706

Question

J'ai une grille qui fournit des liens permettant aux utilisateurs de télécharger des fichiers. Les fichiers sont stockés en dehors de l'application, les références de chemin sont lues dans la base de données et un gestionnaire HTTP (* .ashx) est utilisé pour servir chaque fichier demandé. Il est toutefois possible qu’une entrée de base de données pointant vers un fichier non existant soit créée. J'attrape la FileNotFoundException , mais je ne sais pas quelle serait la meilleure méthode pour informer l'utilisateur du fichier manquant (afin qu'il puisse contacter le support).

La première idée est de définir un code 404 standard sur la réponse, et c'est ce que je fais maintenant.

Un moyen plus utile serait d’afficher une notification (jQuery) concernant un fichier manquant, mais le téléchargement du fichier n’est pas effectué au format AJAX. Il s’ensuivrait un processus en deux étapes: un gestionnaire onclick côté client appelle une méthode de service Web. pour vérifier si le fichier existe, sinon, j'annule le clic (retourne false) et affiche un message amical à l'utilisateur. Si le fichier existe cependant, je passe à l'exécution normale. Mais cela ajoute encore un autre appel au serveur.

Avez-vous traité un problème similaire? Comment l'avez-vous résolu?

Quelques clarifications: l’application est construite dans ASP.NET 2.0 et utilise jQuery pour appeler les méthodes de service Web.

Était-ce utile?

La solution

Pawel, il semble que vous ayez déjà répondu à votre question ...

  

... (afin qu'ils puissent contacter   soutien) ...

En énonçant ce qui précède, je vous suggère de créer une page 404 personnalisée informant l'utilisateur que le fichier n'existe pas sur le disque et lui fournissant des informations sur la procédure à suivre pour entrer en contact avec le bureau d'assistance.

J'ai créé un gestionnaire HTTP pour gérer les fichiers. Si un fichier n'existe pas sur le disque, je retourne une réponse 404. J'ai configuré IIS pour afficher une page personnalisée si une réponse 404 a été émise .. (et je fais de même pour l'erreur 500).

J'espère que cela vous aide et que vous avez de la chance de trouver la solution qui correspond à vos besoins!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top