C# 从存储在数据库MVC中的路径下载ZIP文件#

C# 从存储在数据库MVC中的路径下载ZIP文件#,c#,asp.net-mvc-5,C#,Asp.net Mvc 5,需要下载zip文件内容,路径存储在sqlserver中,我在控制器中使用FILERESULT操作方法。 我的控制器如下所示: public FileResult Download(string id) { string txtvalue = null; int cat = 0; string searchType = Session["type"].ToString(); if (searchType == "name") { txtvalue

需要下载zip文件内容,路径存储在sqlserver中,我在控制器中使用FILERESULT操作方法。 我的控制器如下所示:

public FileResult Download(string id)
{
    string txtvalue = null; int cat = 0;

    string searchType = Session["type"].ToString();
    if (searchType == "name")
    {
        txtvalue = Session["item"].ToString();
    }
    else if (searchType == "cat")
    {
        cat = Convert.ToInt32(Session["item"]);
    }
    int fid =Convert.ToInt32(Session["Fid"]);
    var files = _urepo.GetprojectName(fid);
    string filename = (from f in files
                       select f.PRJ_LOCATION).SingleOrDefault();
    string contentType = "application/zip";

    return File(filename, contentType,"download"+filename);
}
但只有文件正在下载…内容未下载。。
任何帮助都将被告知

尝试类似的方法,首先您需要检查是否正在从数据库获取文件?因此,条件将帮助您,另一件事是尝试更改“内容类型”

if (filename != null)
 {
      contentType = "application/force-download";
      return File(filename, contentType, Path.GetFileName(filename));
 }
注意:我没有发布完整的代码,但这是唯一可能出错的地方。

我得到了它, 实际上,正如CodeCaster所说,内容在存档时丢失了。 后来,我用Ajax调用附加了数据

public FileResult Download()
        {
            int Id = Convert.ToInt32(TempData["FileID"]);

            var files = _urepo.GetprojectName(Id);
            string filename = (from f in files
                               select f.PRJ_LOCATION).SingleOrDefault();
            string contentType = "application/zip";
           byte[] fileBytes = System.IO.File.ReadAllBytes(filename);

            string file=filename.Substring(filename.LastIndexOf("\\")+1);
             return File(fileBytes, contentType, file);
        }

谢谢大家。

您确定文件存在吗?什么是“文件正在下载…内容未下载”的确切含义?请检查返回的文件是否确实存在于服务器上。在返回语句之前类似这样的内容:
如果(!System.IO.File.Exists(filename))抛出新的FileNotFoundException()@Lloyd文件已存在。甚至它正在下载。但里面没有内容。@CodeCaster文件以zip格式下载得很好,但当我打开它们时,内容丢失了,应该在那里存档。实际上,默认情况下,内容是zip。文件正在以Zip格式下载。但当我打开文件时,它不包含任何内容。