我想从网络表单上传一个.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 在具有名称的浏览器中?