[英]Always getting null value from IWebHostEnvironment and IHttpContextAccessor
我正在嘗試上傳文件。 但是 IWebHostEnvironment 和 IHttpContextAccessor 總是返回 null 值。 這是 controller 的一部分。
private readonly IUnitOfWork _unitOfWork;
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly IHttpContextAccessor _httpContextAccessor;
[HttpPost]
public async Task<ActionResult<LS>> PostStApp(StApp stapp)
{
var url = _httpContextAccessor.HttpContext.Request.Host.Value;
var path = $"{_webHostEnvironment.WebRootPath}\\upload\\{stapp.ImageName}";
var fileStream = System.IO.File.Create(path);
fileStream.Write(stapp.Image, 0, stapp.Image.Length);
fileStream.Close();
stapp.ImageName = $"https://{url}/upload/{stapp.ImageName}";
await _unitOfWork.StApp.Insert(stapp);
await _unitOfWork.Save(HttpContext);
return CreatedAtAction("GetStApp", new { id = stapp.Id }, stapp);
}
url 和路徑始終是 null。 我錯過了什么嗎?
確保通過構造函數對兩個服務進行依賴注入,如下所示:
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly IHttpContextAccessor _httpContextAccessor;
public HomeController(IWebHostEnvironment webHostEnvironment, IHttpContextAccessor httpContextAccessor)
{
_webHostEnvironment = webHostEnvironment;
_httpContextAccessor = httpContextAccessor;
}
我忘了依賴注入 2 服務。 將其放入 controller 后即可使用。
public SAppController(IUnitOfWork unitOfWork, IWebHostEnvironment webHostEnvironment, IHttpContextAccessor httpContextAccessor)
{
_unitOfWork = unitOfWork;
this._webHostEnvironment = webHostEnvironment;
this._httpContextAccessor = httpContextAccessor;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.