.NET6文件上传
直接上代码–复制到控制器即可用
/// <summary>
/// 上传文件
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
[HttpPost]
public async Task<ActionResult> UploadFile(IFormFile file)
{
try
{
dynamic fileInfo = null;
if (file.Length > 0)
{
var downloadUrl = _applicationData.GetConfig("DownloadUrl");//路径
string filePath = $"{DateTime.Now:yyyyMMdd}/";
string fileExtension = Path.GetExtension(file.FileName);// 获取文件扩展名
var fileName = file.FileName.Replace(fileExtension, "");//获取原文件名
string newFileName = $"{fileName}{DateTime.Now:HHmmssfff}{fileExtension}"; //原文件名+时间防止文件名冲突+扩展名
if (!Directory.Exists(downloadUrl + filePath))
Directory.CreateDirectory(downloadUrl + filePath);
using (var stream = System.IO.File.Create(downloadUrl + filePath + newFileName))
await file.OpenReadStream().CopyToAsync(stream);
fileInfo = new { FileName = newFileName, FilePath = filePath + newFileName, FileSize = file.Length };
}
return Ok(ResponseModel.CreateSuccess(fileInfo));
}
catch (System.Exception ex)
{
return Ok(ResponseModel.CreateError(ex.Message));
}
}
[HttpGet]
public async Task<ActionResult> DownloadFile(string filePath, string fileName)
{
try
{
var downloadUrl = _applicationData.GetConfig("DownloadUrl");//路径
filePath = downloadUrl + filePath;
var stream = System.IO.File.OpenRead(filePath);
return File(stream, "application/octet-stream", Path.GetFileName(filePath));
}
catch (Exception ex)
{
return Ok(ResponseModel.CreateError(ex.Message));
}
}
觉得好用点个赞