Я работаю над проектом с отдельными внутренними и внешними папками. На стороне интерфейса у меня есть следующий сервис для загрузки файлов:
public async Task UploadFileAsync(IList files, Guid projectId, Guid? commentId)
{
using var content = new MultipartFormDataContent();
foreach (var file in files)
{
var fileContent = new StreamContent(file.OpenReadStream());
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "files",
FileName = file.Name,
};
fileContent.Headers.ContentType = new MediaTypeHeaderValue(file.ContentType);
content.Add(fileContent);
}
Console.WriteLine($"Check-3 {projectId}, Comment ID: {commentId}, Content: {content}");
var response = await _httpClient.PostAsync($"api/Files/project/{projectId}/upload-multiple?commentId={commentId}", content);
response.EnsureSuccessStatusCode();
return await response.Content.ReadFromJsonAsync();
}
На внутренней стороне мой контроллер выглядит так:
[HttpPost("project/{projectId}/upload-multiple")]
public async Task UploadMultiple(IEnumerable files, Guid projectId, [FromQuery] Guid? commentId)
{
Console.WriteLine("Check server side");
var results = await _fileService.UploadMultipleFilesAsync(files, projectId, commentId);
return Ok(results);
}
Когда я пытаюсь загрузить файлы, я получаю сообщение об ошибке после журнала консоли Console.WriteLine($"Check-3 {projectId}, ID комментария: {commentId}, Content: {content }"):
При отправке запроса произошла ошибка.
Дополнительно , я не вижу журнал консоли со стороны сервера Console.WriteLine("Проверить серверную часть");.
Когда я пытаюсь добавить несколько файлов, я получаю следующую ошибку:
Ошибка: файла с идентификатором 1 нет. Возможно, список файлов изменился. См. https://aka.ms/aspnet/blazor-input-file ... selections.
Ошибка: файл с идентификатором 1 отсутствует. Возможно, список файлов изменился. См. https://aka.ms/aspnet/blazor-input-file ... selections.
в Ze (https://localhost:55327/_framework/blaz ... js:1:36968)
в Object.readFileData (https://localhost:55327/_framework/blaz ... js:1:36894)
в https://localhost:55327/_framework/blazor.server.js:1: 3244
в новом Promise()
в y.beginInvokeJSFromDotNet (https://localhost:55327/_framework/blaz ... .js:1:3201)
в Yt._invokeClientMethod (https: //localhost:55327/_framework/blazor.server.js:1:60713)
at Yt._processIncomingData (https://localhost:55327/_framework/blaz ... js:1:58188)
в Yt.connection.onreceive (https://localhost:55327/_framework/blaz ... js:1:51829)
в s.onmessage (https://localhost:55327/_framework/blazor.server) .js:1:79974)
Другие конечные точки в моем проекте работают правильно.
Я проверил URL-адреса и конечные точки, чтобы убедиться в их работоспособности. соответствует.
Я использую Blazor Server для внешнего интерфейса.
public async Task UploadMultipleFilesAsync(IEnumerable files, Guid projectId, Guid? commentId)
{
var responses = new List();
foreach (var file in files)
{
FileMetadataDto response = await UploadFileAsync(file, projectId, commentId);
responses.Add(response);
}
return responses;
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... ing-blazor
Проблемы с загрузкой файлов в ASP.NET Core с помощью Blazor ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение