Je développe un site Web utilisant .NET MVC3. J'ai un contrôleur où je fais un téléchargement de fichier au client. Ce que j'aime faire est de supprimer le fichier après avoir téléchargé ce fichier. J'ai pensé que je peux utiliser ActionFilterAttribute
. J'ai donc écrit la classe ci-dessous:ActionResultFilter page introuvable erreur
public class DeleteFileAfterDownloadFilter : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
string fileName = ((FileStreamResult)filterContext.Result).FileDownloadName;
File.Delete(fileName);
base.OnResultExecuted(filterContext);
}
}
Je suppose que j'ai 2 problèmes ici. Le premier est que quand je cours cette chose, il me donne l'erreur de ".../Company/DownloadVersion?versionID=2057"
page n'a pas pu être trouvé. Quel est le moyen de le faire fonctionner?
Et le deuxième problème est que comme vous l'avez peut-être réalisé "((FileStreamResult)filterContext.Result).FileDownloadName"
n'est probablement pas le chemin de fichier que je veux supprimer. Ce devrait être la variable locale "tempZipFile" dans le contrôleur. Mais je ne sais pas comment transmettre cette valeur à cet événement.
merci pour les corrections, le rend plus lisible. –
Et le PageNotFound est provoqué par le filtre (c.-à-d. Que le téléchargement est OK sans)? –
Aucun téléchargement n'a lieu. –