完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我有一个带有以下代码的 ESP8266,我最近为 ESPAsyncWebServer 添加了一个 /ls 端点。它创建一个 String 并遍历 SPIFFS 根目录中的所有文件,并应该列出它们。为简洁起见,我省略了 wifi/IP 配置、处理 OTA 闪存的 /update POST 以及在 SPIFFS 上创建文件的代码(这些部分工作正常) 我遇到的问题是当我导航到 /ls 时ESP IP,我得到这样的回应:
而不是像这样预期的东西: 我通常尽可能避免使用 String 类型并且通常使用 char 数组,但在这种情况下我想我会尝试 String 因为我不确定确切的长度等。我是否需要手动添加空终止符和这只是因为它丢失而进入下一位?尽管如此,它在文件名和文件大小之间也没有两个空格。或者它是在另一个 const char 数组之上分配?是否有更好和/或更强大的方法来处理使用字符串? 我现在不在 ESP 附近仔细检查,但我认为它没有使用大量内存或类似的东西。我想我可以将 htmlUpdate 文本从 RAM 移到 PROGMEM 中以释放一些;当前的代码只是一个小页面,使快速测试迭代更容易。 我查看了 ESPAsyncWebServer,发现我可以直接打印到响应,我相信这会以不同的方式解决我的问题,但很高兴知道是否有更好的方法来使用字符串,以备将来需要时使用。 代码:全选#include #include #include #include #include #include #include const char *htmlUpdate = ""; AsyncWebServer server(80); void setup() { SPIFFS.begin(); server.on("/ls", HTTP_GET, [](AsyncWebServerRequest *request) { String info = "SPIFFS"; Dir dir = SPIFFS.openDir("/"); while (dir.next()) { info += "rn" + dir.fileName(); File f = dir.openFile("r"); info += " " + f.size(); } request->send(200, "text/plain", info); }); server.on("/update", HTTP_GET, [](AsyncWebServerRequest *request) { request->send(200, "text/html", htmlUpdate); }); server.serveStatic("/", SPIFFS, "/"); server.onNotFound([](AsyncWebServerRequest *request) { request->send(404, "text/plain", "File not found."); }); server.begin(); } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
479 浏览 0 评论
1006 浏览 0 评论
1716 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1375 浏览 1 评论
1258 浏览 1 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1295浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
945浏览 3评论
2396浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2585浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1077浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-18 04:22 , Processed in 0.770137 second(s), Total 68, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
700
