You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino 2.0使用LittleFS上传文件遇空响应问题排查

问题描述

深入研究后发现LittleFS模块已包含在arduino-esp32库中,它似乎是旧版LITTLEFS的新版本。已安装ESP32开发环境,按道理LittleFS应该已集成,但创建./data文件夹存放index.html,并编写以下代码后,访问设备IP时得到空响应,仿佛文件从未上传。请问遗漏了什么?

代码示例

#include <FS.h>
#include <LittleFS.h>
#include <WiFi.h>
#include <WebServer.h>

WebServer server(80);

void setup() {
  Serial.begin(115200);
  delay(1000); // 给串口监视器启动时间

  if(!LittleFS.begin(true)) {
    Serial.println("LittleFS Mount Failed");
    return;
  }

  WiFi.begin("BroadviewOnline", "BuckeyeGuy");
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP());

  server.on("/", HTTP_GET, []() {
    Serial.println("Page requested: /");
    File file = LittleFS.open("/index.html", "r");
    if (!file) {
      Serial.println("Failed to open file");
      server.send(500, "text/plain", "Internal Server Error");
      return;
    }
    size_t fileSize = file.size();
    Serial.print("File size: ");
    Serial.println(fileSize);
    if (fileSize > 0) {
      server.streamFile(file, "text/html");
    } else {
      Serial.println("File is empty");
      server.send(500, "text/plain", "Internal Server Error");
    }
    file.close();
  });

  server.begin();
  Serial.println("HTTP server started");
}

void loop() {
  server.handleClient();
  delay(10); // 让出资源重置看门狗定时器
}
可能的遗漏点
  • 未上传data文件夹内容:Arduino IDE不会自动同步data文件夹到ESP32,必须使用工具菜单中的「ESP32 Sketch Data Upload」功能上传。如果找不到这个选项,检查ESP32插件版本或重启IDE,上传前确保设备处于可烧录状态。
  • 文件名/路径错误:LittleFS对文件名大小写敏感,确认data文件夹里的文件是index.html(注意大小写),且没有放在子目录中,代码里的/index.html路径要和实际上传的文件路径一致。
  • 分区表配置问题:默认分区表可能没有分配LittleFS空间,在工具菜单的「Partition Scheme」中选择包含LittleFS的选项(如「Default with LittleFS」),重新烧录固件和数据。
  • 调试日志排查:打开串口监视器,查看是否有Failed to open file或File is empty的日志,直接定位问题:
    • 若显示Failed to open file:文件未上传或路径错误
    • 若显示File is empty:上传的文件为空或上传过程出错
  • 文件权限:确保上传的文件有可读权限,代码中LittleFS.open使用"r"模式是正确的,无需额外修改,但可以确认文件本身没有损坏。

内容的提问来源于stack exchange,提问作者Jackie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 08:02:35