命名空间 using Microsoft.AspNetCore.Hosting;
private IWebHostEnvironment _webHostEnvironment;
//构造注入
public UserController(IWebHostEnvironment webHostEnvironment)
{
_webHostEnvironment = webHostEnvironment;
}
[HttpPost]
[Authorize]
public async Task<ResultModel> ChangeAvatar(IFormFile file)
{
try
{
if (!(file.Length > 0))
{
return new ResultModel { Status = 0, Message = "文件格式错误" };
}
string fileSavePath = Path.Combine("Upload", "Avatars", Path.GetFileNameWithoutExtension(file.FileName) + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + Path.GetExtension(file.FileName));
if (!Directory.Exists(Path.GetDirectoryName(fileSavePath)))
Directory.CreateDirectory(Path.GetDirectoryName(fileSavePath));
using (FileStream fileStream = new FileStream(Path.Combine(this._webHostEnvironment.ContentRootPath, fileSavePath)
, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
await file.CopyToAsync(fileStream);
await _userService.SaveUserAvatarAsync(User.GetUserId(), fileSavePath);
}
return new ResultModel { Status = 1, Message = "修改成功" };
}
catch (Exception ex)
{
return new ResultModel { Status = 0, Message = ex.Message };
}
}