On the View:
<div class="display-label">SVN</div>
<div class="display-field">
@Html.ActionLink(Model.SVN, "FileStreamDownload", new { url = Model.SVN })
</div>
On the Controller:
public ActionResult FileStreamDownload(string url)
{
string fileType = string.Empty;
string ext = System.IO.Path.GetExtension(url).ToLower();
string fileName = System.IO.Path.GetFileName(url);
switch (ext)
{
case ".pdf":
fileType = "application/x-zip-compressed";
break;
case ".txt":
fileType = "application/x-zip-compressed";
break;
case ".xls":
fileType = "application/vnd.ms-excel";
break;
case ".ppt":
fileType = "application/vnd.ms-powerpoint";
break;
case ".xlsx":
fileType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
break;
case ".pptx":
fileType = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
break;
case ".docx":
fileType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
break;
default :
break;
}
var stream = new WebClient().OpenRead(url);
return File(stream, fileType, fileName);
}
for extension:
|
Here are the correct mimetypes:
Extension MIME Type
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xltx application/vnd.openxmlformats-officedocument.spreadsheetml.template
.potx application/vnd.openxmlformats-officedocument.presentationml.template
.ppsx application/vnd.openxmlformats-officedocument.presentationml.slideshow
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation
.sldx application/vnd.openxmlformats-officedocument.presentationml.slide
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template
.xlam application/vnd.ms-excel.addin.macroEnabled.12
.xlsb application/vnd.ms-excel.sheet.binary.macroEnabled.12
|