Проблемы с загрузкой файлов в ASP.NET Core с помощью BlazorC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы с загрузкой файлов в ASP.NET Core с помощью Blazor

Сообщение Anonymous »

Я работаю над проектом с отдельными внутренними и внешними папками. На стороне интерфейса у меня есть следующий сервис для загрузки файлов:
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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