使用mvc做文件下载的时候,如果文件不存在在哪里给出错误提示?

nnn_net 2015-12-10 03:58:50
下载功能已经粗略的做出来了,但是我写的判断只是在文件下载之前,如果把那个文件删除了点击下载还是会报错,求解决方法,那个错误提示应该放在哪里?


public ActionResult MyFile(string key)
{



if (!string.IsNullOrWhiteSpace(key))
{

var query = _industryRespository.FindIndustryStudyListByKeys(key);
var result = query;
ViewBag.Key = query.Keys;
var dl = query.Download;
ViewBag.Result = result;

if (dl==null)
{
Response.Write("<script>alert('文件已过期');</script>");

}
else
{
TestFile(dl);
}
}
return View("AllReport");
}


public void TestFile(string fileName)
{
//fileName = "0112.doc";//客户端保存的文件名
var filePath = Server.MapPath("~/IndustryStudyFile/");//路径
FileInfo fileInfo = new FileInfo(filePath + fileName);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.WriteFile(fileInfo.FullName);
Response.Flush();
Response.End();
}

...全文
187 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huwei001982 2015-12-11
  • 打赏
  • 举报
回复
文件不存在直接返回 404 就行了
  • 打赏
  • 举报
回复
加个File.Exists判断,如果有文件,才做你那个TestFile方法不就行了
abz7676 2015-12-10
  • 打赏
  • 举报
回复


if ((dl==null)||(dl==""))
                {
                    Response.Write("<script>alert('文件已过期');</script>");
                   
                }

nnn_net 2015-12-10
  • 打赏
  • 举报
回复
Response.AddHeader("Content-Length", fileInfo.Length.ToString()); 在这一行报错,错误提示能否和上面的action一样?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧