使用FileResult下载ASP.NETMVC中任何类型的文件?有人建议我使用FileResult允许用户从ASP.NETMVC应用程序下载文件。但是,我能找到的唯一例子总是与图像文件有关(指定内容类型Image/jpeg)。但如果我不知道文件类型呢?我希望用户能够从我的网站的文件区下载几乎任何文件。我读过一种这样做的方法(参见以前的职位对于代码),这实际上很好,除了一件事:在SaveAs对话框中出现的文件名是从带有下划线的文件路径(文件夹_file.ext)连接起来的。而且,人们似乎认为我应该返回一个FileResult,而不是使用我已经找到的自定义类BinaryContentResult。有人知道用MVC进行这种下载的“正确”方式吗?编辑:我得到了答案(下面),但我只是认为,如果其他人感兴趣,我应该张贴完整的工作代码:public ActionResult Download(string filePath, string fileName){
string fullName = Path.Combine(GetBaseDir(), filePath, fileName);
byte[] fileBytes = GetFile(fullName);
return File(
fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);}byte[] GetFile(string s){
System.IO.FileStream fs = System.IO.File.OpenRead(s);
byte[] data = new byte[fs.Length];
int br = fs.Read(data, 0, data.Length);
if (br != fs.Length)
throw new System.IO.IOException(s);
return data;}
3 回答
大话西游666
TA贡献1817条经验 获得超14个赞
return File(virtualFilePath, System.Net.Mime.MediaTypeNames.Application.Octet, Path.GetFileName(virtualFilePath));
- 3 回答
- 0 关注
- 1143 浏览
添加回答
举报
0/150
提交
取消