2017-10-14 3 views
0

Je travaille sur une tâche, et je suis coincé dans la section de téléchargement. Je peux télécharger le fichier. Mais lorsque j'essaie de télécharger le même fichier après le téléchargement, j'obtiens une erreur ("Accès refusé").Comment télécharger un fichier dans ASP.NET MVC en utilisant C#?

Voici le code que je l'ai écrit:

[HttpGet] 
public FileResult Download (string fileName) 
{ 
    var permissionSet = new PermissionSet(PermissionState.None); 

    var writePermission = new FileIOPermission(FileIOPermissionAccess.Write, @"D:\Assignment\Ment\Ment\Photos"); 
    permissionSet.AddPermission(writePermission); 

    var FileVirtualPath = Server.MapPath("~/Photos/" + fileName); //"~/Photos/" + fileName; 

    return new FilePathResult(@"D:\Assignment\Ment\Ment\Photos", "application/octet-stream"); 
} 
+0

Vous utilisez MapPath et ne pas utiliser pour retourner effectivement que d'un fichier, revenez plutôt soudainement un résultat à un dossier. Créez permissionSet et ne l'utilisez pour rien. –

+0

Pouvez-vous éditer ce code? –

+0

J'ai changé le code à ceci, mais toujours ne fonctionnant pas var FileVirtualPath = ("~/Photos /" + fileName); Renvoyer le fichier (FileVirtualPath, "application/force-download", Path.GetFileName (FileVirtualPath)); –

Répondre

0

Vous pouvez faire

[HttpGet] 
    public virtual ActionResult Download(string fileName) 
    { 
     //fileName should be like "photo.jpg" 
     string fullPath = Path.Combine(Server.MapPath("~/Photos"),fileName); 
     return File(fullPath, "application/octet-stream", fileName); 
    } 
+0

J'ai changé le code à ceci, Et maintenant j'obtiens l'erreur ............. Détails d'exception: System.IO.FileNotFoundException: N'a pas pu trouver le dossier 'D: \ Work \ Ment \ Ment \ Photos \ photo.jpg '. –