netcore3 上传图片到指定文件夹

1,配置资源访问权限 startup.cs

 

app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\images")),
RequestPath = new PathString("/Upload")
});

app.UseDirectoryBrowser(new DirectoryBrowserOptions()
{
FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\images")),
RequestPath = new PathString("/Upload")
});

 

2,文件上传

/// <summary>
/// 上传文件
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
[HttpPost, RequestSizeLimit(2000_000_000)]
public ResultModel SaveFile(IFormFile file)
{
var fileSize = file.Length;
if (fileSize > 0)
{
var fileEntity = MiCakeApp.FileObject.CreateFile(Path.GetExtension(file.FileName).ToLower(),"", file.FileName, fileSize);

var dNow = DateTime.Now;
fileEntity.Url = Path.Combine(dNow.ToString("yyyy"), dNow.ToString("MM"), dNow.ToString("dd"));

var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\images", fileEntity.Url);//Path.Combine(env.ContentRootPath, fileEntity.Url);
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
fileEntity.Url = "\\Upload\\" + fileEntity.Url;
var savePath = Path.Combine(path, fileEntity.Id + fileEntity.FileExtention);//Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\images", fileEntity.Id + fileEntity.FileExtention);//

using (var fs = new FileStream(savePath, FileMode.Create))
{
file.CopyTo(fs);
}
this._uploadRepository.AddAndReturn(fileEntity);
var fileResult = new
{
Id = fileEntity.Id,
path = Path.Combine(fileEntity.Url, fileEntity.Id + fileEntity.FileExtention)
};
return new ResultModel(0,"", fileResult);
}
return new ResultModel(-1, 0, "导入错误");
}

 

3,浏览器输入上传地址并显示刚刚上传的图片

https://localhost:44365/Upload/2020/08/04/663e2a36-18d4-4622-a753-dcb27fb54c39.jpg

 

注意点:文件实际保存的路径是在 项目根目录 wwwroot\images 文件夹下

 

posted on 2020-08-04 10:28  wangrenshuang  阅读(755)  评论(0编辑  收藏  举报

导航