我有一个网页在我的asp.net mvc网站用户上传文件。现在我的问题是,我需要在一个页面上显示链接,用户点击它就可以查看文件。
用户可以上传doc、docx和pdf类型的文件。
我该怎么做呢?
请帮忙,
谢谢
您可以做的最简单的事情就是使用System.IO.Directory.GetFiles(..)
,如下所示:
var myModel = new myModel {
Files = Directory.GetFiles(@"c:temp")
}
然而,Directory.GetFiles(..)
会给你一个字符串数组,这可能有点难处理。如果您需要以更面向对象的方式使用这些文件,请参考DirectoryInfo
和FileInfo
类。
的例子:
var directory = new DirectoryInfo(@"c:temp");
foreach (FileInfo fi in directory.GetFiles()) {
Console.WriteLine(@"FileName: {0}", fi.Name);
}
MSDN参考:http://msdn.microsoft.com/en-us/library/07wt70x2.aspx
感谢您的回复。
但我一直在寻找这样的东西,它解决了我的问题。
[HttpGet]
public ActionResult Index(string id)
{
string extension = id.Substring(id.IndexOf(".") + 1);
string contentType = string.Empty;
if (extension == "doc" || extension == "docx")
{
contentType = "application/msword";
}
else if (extension == "pdf")
{
contentType = "application/pdf";
}
if (string.IsNullOrEmpty(contentType))
{
throw new Exception("Invalid file");
}
return File(Server.MapPath("~/Docs/" + id), contentType);
}
上面代码中的id参数为文件名。
谢谢
如果你想知道如何避免你的下载链接被截获MVC路由看看http://weblogs.asp.net/pjohnson/archive/2010/11/11/mvc-s-ignoreroute-syntax.aspx