下面的 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 编码器。
威廉