我有這樣的代碼:
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」
任何想法,我做錯了什麼?
通常,這意味着有一個權限問題。當運行時沒有訪問資源的權限時,它可能會拋出未找到的異常。 – David
如果您保存圖像,則需要添加它的文件名:Path.Combine(path,「mycoolpic.png」),而不是將其保存爲目錄。 –