为存储在 SQL Server 数据库中的路径和存储在本地计算机中的文件提供指向 pdf 文件的下载链接



我想从网络表单上传一个.pdf文件,然后提供一个下载链接供用户下载。我已经在控制器和视图中编写了一个代码,用于上传文件并将文件的物理路径保存到SQL Server数据库中,并且工作正常。现在我在为用户提供下载链接时遇到了问题,因此单击该链接后它应该下载文件或打开。我尝试创建<a></a>但它将用于提供指向 Web 上存在的文件的链接,但我想提供指向本地计算机上存在的文件的链接。

上传文件的代码如下

控制器:

 HttpPostedFileBase file = Request.Files["file1"];
 try
 {
     if (file.ContentLength > 0)
     {
         var filename = System.IO.Path.GetFileName(file.FileName);
         var Path = System.IO.Path.Combine(Server.MapPath("~/App_Data"), dbo_tblTdApplicationDetails.ApplicationId.ToString() + ".pdf");
         file.SaveAs(Path);
         dbo_tblTdApplicationDetails.Path = Path.ToString();
         db.Entry(dbo_tblTdApplicationDetails).State = EntityState.Modified;
         db.SaveChanges();
     }
}
catch
{
     ViewBag.Message = "File upload failed!!";
}

视图:

<td>
    <div class="form-group ">
                    Upload file
                    <div class="col-md-10">
                        <label for="file1">Filename:</label>
                        <input type="file" name="file1" />
                    </div>
                </div>
            </td>       

存储在 SQL Server 数据库中的物理路径

C:....App_Data1047.pdf

SQL 服务器文件路径

为了完成此请求 - 解决方案基于以下注释:

因此,您要将文件上传到网络服务器,然后您想将此文件作为下载提供给其他用户,而不是从网络根目录内部 - 对吗?如果是这样,您可以尝试像这样流式传输文件,例如:使用 MVC 文件内容流式传输文件 ASP.NET 在具有名称的浏览器中?

最新更新