文件未使用Http请求保存



我需要将文件保存到解决方案中的目录中,并将其到数据库的路径保存为字符串。但这两个文件都没有保存到文件目录,因此也没有保存到其路径。我做错了什么?

以下是控制器POST方法的代码:

[HttpPost]
[Route("addBank")]
public async Task<IActionResult> AddBank([FromForm] Bank bank, IFormFile file)
{
file = Request.Form.Files.FirstOrDefault();
await imageUploadService.UploadFile(file);
await bankRepository.Add(bank);
return Ok(bank);
}

以及保存文件的服务:

public class ImageUploadService : IImageUploadService
{
public IWebHostEnvironment webHostEnvironment;
public async Task<string> UploadFile(IFormFile file)
{

try
{
if (file.Length == 1 && file.ContentType == "image/png")
{
FileInfo fileInfo = new FileInfo(file.FileName);
Bank bank = new Bank();
var newFileName = "Logo_" + DateTime.Now.TimeOfDay.Milliseconds + fileInfo.Extension;
string fileLocation = Path.GetFullPath(Path.Combine(webHostEnvironment.ContentRootPath, "/UploadedFiles/" + newFileName));
if (!Directory.Exists(fileLocation))
{
Directory.CreateDirectory(fileLocation);
}

using (var fileStream = new FileStream(Path.Combine(fileLocation, file.FileName), FileMode.Create))
{
await file.CopyToAsync(fileStream);
bank.Logo = fileLocation;
}
return fileLocation;
}
else
{
return "Ошибка при сохранении файла";
}
}
catch (Exception ex)
{
throw new Exception("Ошибка при сохранении файла", ex);
}
}
}
  1. 修改文件。文件长度==1。长度>0 as Length是以字节为单位的文件长度
  2. Directory.Exists((检查某个位置是否存在目录。但是,您将directorypath+filename传递给它,这是不正确的

最新更新