谁能帮帮我,我只是不知道出了什么问题。
场景:员工可以上传文件(doc、docx 或 pdf)。这些文件显示在表格中。当他们单击名称时,该文件应在新窗口中打开。
现在我可以上传文件了。此文件保存在上传文件夹和数据库中。上传的文件显示在表格中,但是当我单击文件名时,文件会被下载,而不是在新窗口中打开。我尝试了几件事,但我总是得到相同的结果。
接下来我将包括控制器和视图。
控制器:
//To view the files in a table.
public ActionResult ShowUploadedFiles()
{
return View(db.UploadedFiles.ToList());
}
//To open a file
public ActionResult OpenFile(string fileName)
{
var fs = System.IO.File.OpenRead(Server.MapPath("~/Uploads/" + fileName));
return File(fs, "application/pdf", fileName);
}
看法
@foreach (var file in Model)
{
<tr>
<td>@Html.DisplayFor(f => file.FileDate)</td>
<td>@Html.DisplayFor(f => file.Employee.FullName)</td>
<td><a href="/Uploads/@file.FileName" target="_blank">@file.FileName</a></td>
<td>@Html.DisplayFor(f => file.FileName)</td>
<td>@(file.FileSize/1000)kb</td>
<td><a href="@Url.Action("OpenFile", new { fileName=file.FileName})" target=_blank>@file.FileName</a></td>
</tr>
}
第一个href“有效”。当我单击它时,pdf 在新窗口中打开,但 docx 文件已下载。当我自己在新窗口中输入网址时,我得到了相同的结果(打开了 pdf,下载了 docx)。当我单击第二个 href 时,两个文件都已下载。
有什么问题还是因为我在 Chrome 中这样做?(我刚刚在 explorer 9 中检查了它,我得到了相同的结果)