我有一个ASP.NET MVC应用程序,我想添加文件上载功能。 这是我的经纪人:
private void UploadWholeFile(HttpContext context, List<FilesStatus> statuses)
{
for (int i = 0; i < context.Request.Files.Count; i++)
{
var file = context.Request.Files[i];
var fullPath = Path.Combine(System.Web.HttpContext.Current.Server.MapPath("~/App_data/UploadedFiles/")) + Path.GetFileName(file.FileName);
file.SaveAs(fullPath);
string fullName = Path.GetFileName(file.FileName);
statuses.Add(new FilesStatus(fullName, file.ContentLength, fullPath));
}
}
当我测试(本地)时,我总是收到此错误:DirectoryNotFoundException:找不到路径的一部分.....
奇怪的是:我在测试后确实在UploadedFiles文件夹中找到了该文件! 那我为什么会收到这个错误?
答案 0 :(得分:1)
好的,发现自己出了什么问题:选择上传文件后,表单已经提交,导致上传文件。 按下“上传”按钮后,尝试再次上传文件。
因此,错误消息试图告诉我该目录中已存在同名文件!
答案 1 :(得分:0)
注释掉这些代码行。其中一个是导致你的错误。
string fullName = Path.GetFileName(file.FileName);
statuses.Add(new FilesStatus(fullName, file.ContentLength, fullPath));
答案 2 :(得分:0)
试试这个,
private void UploadWholeFile(HttpContext context, List<FilesStatus> statuses)
{
string path = HttpContext.Current.Server.MapPath("~/App_data/UploadedFiles/");
for (int i = 0; i < context.Request.Files.Count; i++)
{
var file = context.Request.Files[i];
file.SaveAs(path + file.FileName);
...
}
}