[英]Could not find a part of the path C# asp.net, path is there
丟失。
我有以下代碼:
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);
我在生產環境中遇到了這個問題,但在開發過程中卻沒有。
我的問題是因為我省略了~
符號。
我從這里出發:
var path = Server.MapPath("/App_Data/templates/registration.html");
對此:
var path = Server.MapPath("~/App_Data/templates/registration.html");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.