У меня есть приложение Blazor, где я использую BlazorInputFile с этого сайта - https://blog.stevensanderson.com/2019/09/13/blazor-inputfile/ однако страница загружает его только в поток памяти, а не копирует файл в папку на сервере. Мне нужно его скопировать в папку на сервере.
<div class="form-group">
<label for="taskName">Feature Image</label>
<InputFile OnChange="HandleFileSelected" />
</div>
@code {
IFileListEntry file;
void HandleFileSelected(IFileListEntry[] files)
{
file = files.FirstOrDefault();
}
async Task CountLines()
{
numLines = 0;
using (var reader = new System.IO.StreamReader(file.Data))
{
while (await reader.ReadLineAsync() != null)
{
numLines++;
}
}
}
async Task UploadFile()
{
if (file != null)
{
var path = System.IO.Path.Combine(Server.MapPath("~/Uploads/"));
string pathstring = System.IO.Path.Combine(path.ToString());
string filename1 = Guid.NewGuid() + System.IO.Path.GetExtension(file.Name);
bool isexists = System.IO.Directory.Exists(path);
if (!isexists)
{
System.IO.Directory.CreateDirectory(pathstring);
}
string uploadpath = pathstring + "\\" + filename1;
file.SaveAs(uploadpath);
}
}
В приведенном выше коде я создал метод UploadFile и использовал свой обычный способ загрузки файлов, но, очевидно, он не будет работать, потому что IFileListEntry не имеет метод SaveAs и Сервер не будут работать на Blazor.
Как мне лучше всего загрузить этот файл на сервер, пожалуйста? (Метод UploadFile будет вызываться при отправке формы).