ОБНОВЛЕНИЕ : Кажется, проблема в Docker. При создании проекта с использованием IIS Express все работает как положено. Мне придется выяснить, почему Docker вызывает эту проблему.
Я пытаюсь сохранить изображение, которое отправляется в мой API, на локальный диск.
Но у меня возникают проблемыс фактическим хранением изображения. Я получаю System.IO.IOException
при попытке сохранить его.
Вот метод API:
[HttpPost]
public IActionResult Post([FromForm] IFormFile file)
{
var filePath = @"C:\" + file.FileName + ".png";
if(file.Length > 0)
{
using (var stream = new FileStream(filePath, FileMode.Create))
{
file.CopyTo(stream);
}
}
return Ok();
}
Файл работает нормально, и если я отлаживаюсь в Visual Studio, я вижу, чтоэто правильный файл, который отправляется в. Код разрывается на строку new FileStream(filePath, FileMode.Create)
.
Я пробовал с разными путями, такими как C:\Pictures\
и C:\users\myuser\pictures\
, но, похоже, ничего не работает.
Подробности исключения:
An exception of type 'System.IO.IOException' occurred in System.Private.CoreLib.dll but was not handled in user code: 'Invalid argument'
Stack trace:
> at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)
Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)
> at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options)
> at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
> at System.IO.FileStream..ctor(String path, FileMode mode)