我有一个mvc 5应用程序,我保存信件文件在文件夹内的文件夹(~\ files \ letters )和我保存的物理路径在数据库中,上传信件文件到(~\ files \ letters )很好,保存物理路径很好,问题是下载一个信件文件到客户端机器,我已经尝试使用Webclient和响应都不工作,不给任何错误,这里是下载信件文件使用响应的代码。
[HttpPost]
public void open(int id)
{
string path = "";
path = db.tblLetters.Where(t => t.ID == id).SingleOrDefault().LetterImg;
string fileName = path.Substring(path.LastIndexOf(@"\")+1);
string p = Server.MapPath("~/Files/LettersImgs/" + fileName);
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Response.ContentType = "application/octet-stream";
Response.TransmitFile(p);
Response.End();
}发布于 2018-09-28 12:59:46
您可以使用FilePathResult直接从服务器的文件路径返回文件,而不是使用老式的Response.TransmitFile。将返回类型从void改为ActionResult (或FileResult),使用[HttpGet]代替[HttpPost],并执行return File(...)让用户下载文件,如下所示:
[HttpGet]
public ActionResult Open(int id)
{
string path = "";
path = db.tblLetters.Where(t => t.ID == id).SingleOrDefault().LetterImg;
string fileName = path.Substring(path.LastIndexOf(@"\")+1);
string p = Server.MapPath("~/Files/LettersImgs/" + fileName);
return File(p, "application/octet-stream", fileName);
}https://stackoverflow.com/questions/52548395
复制相似问题