假設現在新增一筆演員資料並同時上傳 :
public ActionResult Create(Actor actor, HttpPostedFileBase Avatar) { _db.Actor.Add(actor); _db.SaveChanges(); // 更新圖片 new FileController().UploadActorAvatar(actor.Id, Avatar); // return RedirectToAction("Index", new { term = actor.Name }); }
在 FileController 的 UploadActorAvatar 使用 Server.MapPath() 時會發生 null reference, 因為此時 HttpContext 不存在
解法 :
1. 傳 HttpContext, 用 HttpContextBase 接
@ ActorControllernew FileController().UploadActorAvatar(actor.Id, Avatar, HttpContext);@ FileController
public void UploadActorAvatar(long id, HttpPostedFileBase Avatar,HttpContextBase h)+
var folderPaht = h.Server.MapPath("~/Uploads/ActorAvatar/");
2. 不要使用 HttpContext.Server.MapPath , 改用
HostingEnvironment.MapPath()
沒有留言:
張貼留言