上传文件用到的方法是IFormFile ,直接上代码
[HttpPost("upload")]
public async Task<ActionResult<dynamic>> UploadFile(IFormFile file)
{
try
{
if (file == null || file.Length == 0)
{
return BadRequest("无文件内容,请重新上传");
}
//文件夹路径
var path = Path.Combine(Directory.GetCurrentDirectory(), "File", "local");
//判断是否存在保存文件的文件夹,不存在就创建
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
//文件保存路径
var filePath = Path.Combine(path, file.FileName);
//文件流
var stream = new FileStream(filePath, FileMode.Create);
//保存文件
await file.CopyToAsync(stream);
//文件入库
FileImage image = new FileImage()
{
ImageName = file.FileName,
CreateTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
};
_context.FileImages.Add(image);
int i = await _context.SaveChangesAsync();
if (i < 0)
{
return new
{
message = "文件入库失败"
};
}
return new
{
imageName = file.FileName,
CreateTime = image.CreateTime,
message = "下载成功"
};
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
这里可能想到的判断不是很全面,您也可以根据自己的想法去写一些处理方法
今天的分享就到这里