为存储在SQL Server数据库中的路径和存储在本地计算机

时间:2018-04-13 04:39:28

标签: c# html sql-server asp.net-mvc

我想从网络表单上传.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_Data\1047.pdf

SQL Server file path

1 个答案:

答案 0 :(得分:0)

为完成此请求,解决方案基于以下评论:

因此,您要将文件上传到网络服务器,然后您希望将此文件作为下载提供给其他用户,而不是从webroot内部提供 - 是否正确?如果是这样,您可以尝试流式传输文件,如下所示:Stream file using ASP.NET MVC FileContentResult in a browser with a name?