1.上传
[HttpPost("upload")]
public async Task<string> Upload(IFormFile file)
{
if (file is null)
{
throw new UserFriendlyException("请选择上传的文件");
}
var webRootPath = $"{AppDomain.CurrentDomain.BaseDirectory}/wwwroot/Upload/";
if (!Directory.Exists(webRootPath))
{
Directory.CreateDirectory(webRootPath);
}
var fileExtension = Path.GetExtension(file.FileName)?.ToLower();
if (string.IsNullOrEmpty(fileExtension))
{
throw new UserFriendlyException("文件无法识别!");
}
var fileFilt = new List<string> { ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".mp4" };
if (!fileFilt.Any(p => p.Equals(fileExtension)))
{
throw new UserFriendlyException("请上传pdf、Work、Excel格式的文件");
}
var strDateTime = DateTime.Now.ToString("yyMMddhhmmssfff");
var saveName = strDateTime + fileExtension;
using (FileStream fs = System.IO.File.Create(webRootPath + saveName))
{
await file.CopyToAsync(fs);
fs.Flush();
}
saveName = "/wwwroot/Upload/" + saveName;
return saveName;
}
2.下载
[HttpPost("down")]
public async Task<ActionResult> Down(string path)
{
var stream = System.IO.File.OpenRead(path);
string fileExt = Path.GetExtension(path);
var provider = new FileExtensionContentTypeProvider();
var memi = provider.Mappings[fileExt];
return File(stream, memi, Path.GetFileName(path));
}