最近做博客需要,需要用到上传图片,这里记录一下
public async Task<IActionResult> OnPostUpload()
{
var date = Request;
var files = Request.Form.Files;
long size = files.Sum(f => f.Length);
string shortTime = $"/Update/{DateTime.Now.ToString("yyyy/MM/dd")}/";
string filePhysicalPath = $@"{_host.WebRootPath}/{shortTime}"; //文件路径 可以通过注入 IHostingEnvironment 服务对象来取得Web根目录和内容根目录的物理路径
if (!Directory.Exists(filePhysicalPath)) //判断上传文件夹是否存在,若不存在,则创建
{
Directory.CreateDirectory(filePhysicalPath); //创建文件夹
}
List<string> urlLs = new List<string>();
foreach (var file in files)
{
if (file.Length > 0)
{
var fileName = System.Guid.NewGuid().ToString() + Path.GetExtension(file.FileName);//文件名+文件后缀名
using (var stream = new FileStream(filePhysicalPath + fileName, FileMode.Create))
{
await file.CopyToAsync(stream);
}
urlLs.Add($"{shortTime}{fileName}");
}
}
return new JsonResult(TmpUrl.SuccessInfo("上传成功", urlLs));
}
这里_host是构造函数注入进来的