Как загрузить файл SPIFFS с помощью AsyncWebServer? - PullRequest
0 голосов
/ 19 октября 2019

Ниже кода Arduino ESP32 создается список файлов в виде URL. Я конвертирую проект клиент / сервер WiFi для использования библиотеки AsyncWebServer. Нужна помощь в извлечении имени файла из URL и возможность определения имени файла для загрузки на веб-сервере Async.

String str;

if (!SPIFFS.begin(true))
{
     Serial.println("An Error has occurred while mounting SPIFFS");
     return;
}

File root = SPIFFS.open("/");

File file = root.openNextFile();

while (file)
{

     if(strncmp(file.name(), "/LOG", 4) == 0)
     {
          str += "<a href=\"";
          str += file.name();
          str += "\">";
          str += file.name();
          str += "</a>";
          str += "    ";
          str += file.size();
          str += "<br>\r\n";

     }

     file = root.openNextFile();
}

client.print(str);

Попытка кода для Asyncwebserver:

serverAsync.on(filename, HTTP_GET, [](AsyncWebServerRequest *request){
AsyncWebServerResponse *response = request->beginResponse(200, "text/plain", "Ok");
response->addHeader("Content-Disposition", "attachment");
request->send(response);
});

Этот код создает: окно загрузки с правильным именем файла;Тем не менее, содержимое только «хорошо».

Моя первоначальная попытка состояла в том, чтобы попробовать что-то с PHP. Я менее опытный программист с PHP и Async Web Server.

Уильям

1 Ответ

0 голосов
/ 25 октября 2019

Решение вопроса, предоставленное Pablo2048

Двадцать три комментария по этому вопросу;почти внизу, комментарий № 21 Pablo2048 объясняет свой подход и код для решения.

Уильям

...