Как загрузить и получить файл в сетевую папкуC#

Место общения программистов C#
Anonymous
Как загрузить и получить файл в сетевую папку

Сообщение Anonymous »

У меня есть проект ASP.Net rest. Как загрузить файлы в общую сетевую папку (например: \FileServer\Files). Я должен иметь возможность получить доступ к файлу из папки, вызвав API GetFile и передав ему имя файла, только если пользователь прошел аутентификацию.
Пользователь НЕ должен иметь возможность доступа к файлам напрямую по ссылке. .
API должен отвечать за извлечение и передачу файла аутентифицированному пользователю.
Что я уже пробовал: Strong>
Загрузка моего файла (см. код ниже) работает с локальной сетью и файлами после развертывания в IIS

Код: Выделить всё

Route("api/[controller]/[Action]")]
[HttpPost]
public async Task UploadFile(IFormFile file)
{
var filePaths = new List();

if (file.Length > 0)
{

var currentDirectory = Environment.CurrentDirectory;
var filePath = "\\FileServer\\Files\\" + "FILE_" + file.FileName;
filePaths.Add(filePath);
using (var stream = new FileStream(filePath, FileMode.Create))
{
await file.CopyToAsync(stream);
}
}
return Ok(new { count = "na",  filePaths });

}
При получении моего файла, как показано ниже, также происходит сбой после развертывания в IIS

Код: Выделить всё

    [Route("api/[controller]/[Action]")]

[HttpGet("filename")]
public async Task ReturnStreamAsync1(string fileName)
{

String rootSERVER = "\\FileServer\\File";

IFileProvider provider = new PhysicalFileProvider(rootSERVER);
IFileInfo fileInfo = provider.GetFileInfo(fileName);
var readStream = fileInfo.CreateReadStream();

return File(readStream, "audio/mp3", fileName);

}
Любая помощь будет высоко оценена

Подробнее здесь: https://stackoverflow.com/questions/785 ... ork-folder

Вернуться в «C#»