2017-10-14 84 views
0

我正在做一項任務,而我被困在下載部分。我可以上傳文件。但是當我在上載後嘗試下載同一文件時,出現錯誤(「拒絕訪問」)。如何使用C#在ASP.NET MVC中下載文件?

這是我寫的代碼:

[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

您使用的MapPath然後不要使用用於實際上返回一個文件,而突然將結果返回到一個文件夾。創建permissionSet,不要用於任何事情。 –

+0

你能編輯這段代碼嗎? –

+0

我改變了這個代碼,但仍然不工作 var FileVirtualPath =(「〜/ Photos /」+ fileName); return File(FileVirtualPath,「application/force-download」,Path.GetFileName(FileVirtualPath)); –

回答

0

你可以做

[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

我將代碼更改爲此,現在我得到錯誤.............異常詳細信息:System.IO.FileNotFoundException:找不到文件'D:\ Work \ Ment \ Ment \照片\ photo.jpg」。 –