gpt4 book ai didi

c# - 找不到 C# asp.net 路径的一部分,路径在那里

转载 作者:行者123 更新时间:2023-11-30 20:51:27 29 4
gpt4 key购买 nike

迷路了。

我有这个代码:

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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com