迷失了。
我有这个代码:
public ActionResult UploadCV(string userId, HttpPostedFileBase cvfile)
{
if (cvfile != null && cvfile.ContentLength > 0)
{
var bareFilename = Path.GetFileNameWithoutExtension(cvfile.FileName);
var fileExt = Path.GetExtension(cvfile.FileName);
//save to dir first
var path = Path.Combine(Server.MapPath("/App_Data/userfiles/"),
userId + "/");
var dir = Directory.CreateDirectory(path);
cvfile.SaveAs(path);
//save to db..
var user = Ctx.Users.FirstOrDefault(x => x.Id == userId);
user.CvLocation = "/App_Data/userfiles/" + userId + "/" + bareFilename + fileExt;
user.CvUploadDate = DateTime.Now;
Ctx.SaveChanges();
}
return RedirectToAction("Index", "Settings", new { area = "" });
}
上线:
cvfile.SaveAs(path);
我收到错误
Could not find a part of the path
'C:\Users\me\big\ol\path\App_Data\userfiles\4cf86a2c-619b-402a-80db-cc1e13e5288f\'.
如果我导航到资源管理器中的路径,效果很好。
我想要解决的问题是按用户在数据库中拥有的唯一 GUID 对用户上传进行排序。我希望文件夹“userfiles”具有用户 GUID 的文件夹名称,并且在该文件夹中我有“mycoolpic.png”
知道我在这里做错了什么吗?
最佳答案
您正尝试在不提供文件名的情况下进行保存。 HttpPostedFileBase.SaveAs需要一个代表文件名而不仅仅是路径的参数。
只需将服务器path
与之前提取的bareFilename
结合使用即可。
var path = Path.Combine(Server.MapPath, "/App_Data/userfiles/"),userId);
var dir = Directory.CreateDirectory(path);
cvfile.SaveAs(Path.Combine(path, bareFilename);
关于c# - 找不到路径的一部分 C# asp.net,路径在那里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21687737/