В нашем текущем проекте мы хотим, чтобы пользователи могли загружать файлы Excel на наш веб-сайт, и эти таблицы Excel должны обрабатываться (читать каждую строку и сохранять их в базе данных) с использованием функции Azure.
Эта функциональность раньше была в бэкэнде нашего проекта * Net Core MVC с использованием метода Task<IActionResult>
post, который принимал параметр IFormFile
. Лист обработан (чтение всех строк).
Однако функции Azure, похоже, не принимают параметр IFormFile. У меня вопрос, как я могу добавить эти данные таблицы в запрос?
Это метод post
, который из веб-приложения активирует функцию azure:
[HttpPost]
public async Task<ActionResult> Bulkimport(IFormFile excelsheet)
{
string azFunctionUri = "https://azfunctionsUri.azurewebsites.net";
if (customerExists)
{
using (MemoryStream ms = new MemoryStream())
{
await excelsheet.CopyToAsync(ms).ConfigureAwait(false);
string content = Encoding.ASCII.GetString(ms.ToArray());
// use content as parameter in api builder method
IApiBuilder apiBuilder = new ApiBuilder();
HttpResponseMessage buildRequest = await apiBuilder.BuildFileRequest(azFunctionUri, content); // This builds the request and sends it to the azure function.
}
}
return View();
}
BuildFileRequest .cs (вспомогательный метод, который создает запрос):
public async Task<HttpResponseMessage> BuildFileRequest(string uri, string content)
{
MultipartFormDataContent multiContent = new MultipartFormDataContent();
byte[] payload = Encoding.UTF8.GetBytes(content);
multiContent.Add(new ByteArrayContent(payload), "files"); // name must be "files"
HttpResponseMessage response = await httpClient.PostAsync($"{uri}", multiContent).ConfigureAwait(false);
return response;
}
Я застрял на том, как получить этот запрос в функции и построить файл Excel из запроса, поэтому строки могут быть прочитаны и обработаны в база данных.