我有兩個表,Note和文件(一對多)。 我將所有文件保存在「文件」文件夾中,除了NoteID(FK)之外,我還在File表中保存了名稱,路徑,擴展名。根據條件從文件夾獲取文件mvc asp
我上傳了他們成功。 但是,當我想要基於NoteID條件下載文件時,我不能。 我可以獲取該文件夾中的所有文件。
我的問題是如何從特定文件夾中根據條件獲取一些文件? 我已經嘗試了幾種解決方案,但他們不工作。
任何幫助?
操作:
public ActionResult Download(int NoteID)
{
var fs = db.Files.Where(f => f.NoteID == NoteID);
string[] files = Directory.GetFiles(Server.MapPath("/Files"));
for (int i = 0; i < files.Length; i++)
{
files[i] = Path.GetFileName(files[i]);
}
ViewBag.Files = files;
return View();
}
public FileResult DownloadFile(string fileName)
{
var filepath = System.IO.Path.Combine(Server.MapPath("/Files/"), fileName);
return File(filepath, MimeMapping.GetMimeMapping(filepath), fileName);
}
下載查看:
@{
ViewBag.Title = "Download Files";
var Files = (ViewBag.Files as string[]);
if (Files != null && Files.Any())
{
foreach (var file in Files)
{
<br />
@Html.ActionLink(file, "DownloadFile", new { fileName = file })
<br />
}
}
else
{
<label>No File(s) to Download</label>
}
}
編輯:
上面的代碼是工作和獲取和顯示在 '文件' 文件夾中的所有文件
時我想下面運行代碼我得到IOEception
個操作:
public ActionResult Download(int? NoteID)
{
var fs = db.Files.Where(f => f.NoteID == NoteID);
string[] files = new string[(fs.Count()) - 1];
int counter = 0;
foreach (var item in fs)
{
files[counter] = Directory.GetFiles(Server.MapPath("/Files/"+item.FileName)).Single();
/*here is the Exception
*
System.IO.IOException:
{ "The directory name is invalid.\r\n"}
InnerException message:
The directory name is invalid.
*/
}
for (int i = 0; i < files.Length; i++)
{
files[i] = Path.GetFileName(files[i]);
}
ViewBag.Files = files;
return View();
}
public FileResult DownloadFile(string fileName)
{
var filepath = System.IO.Path.Combine(Server.MapPath("/Files/"), fileName);
return File(filepath, MimeMapping.GetMimeMapping(filepath), fileName);
}
查看:
@{
ViewBag.Title = "Download Files";
var Files = (ViewBag.Files as string[]);
if (Files != null && Files.Any())
{
foreach (var file in Files)
{
<br />
@Html.ActionLink(file, "DownloadFile", new { fileName = file })
<br />
}
}
else
{
<label>No File(s) to Download</label>
}
}
能否請您給一些,你收到異常的解釋嗎? – kat1330
System.IO.IOException: {「目錄名稱無效。\ r \ n」} InnerException消息: 目錄名稱無效。 – askm
在你的動作DownloadFile()你確認哪個值有'filepath'?因爲你有這種例外,這意味着你有問題找到文件。對? – kat1330