0

下面的 Arduino ESP32 代码创建了一个文件列表作为 URL。我正在转换 WiFi 客户端/服务器项目以使用 AsyncWebServer 库。需要帮助从 URL 中提取文件名并能够检测文件名以在 Async Web Server 中下载。

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);
});

此代码产生:具有正确文件名的下载窗口;但是,内容只是“ok”。

我最初的尝试是尝试使用 PHP。我不是一个经验丰富的 PHP 和 Async Web Server 编码器。

威廉

4

1 回答 1

0

Pablo2048提供的问题的解决方案

关于该问题的 23 条评论;几乎在底部,评论 #21 Pablo2048 解释了他的方法和解决方案的编码。

威廉

于 2019-10-25T18:43:42.647 回答