问题描述
把我难住了... 使用带有 SD 的 NodeMCU ... 经典的 WebServer 设置通过 HTTP 工作一个简单的文件服务器:这是 SendFile 处理程序:
void handleFileRequest()
{
Serial.println("handleFileRequest");
File32 file = sd.open(fileName,O_READ);
if ( file == 0 ) // opening the file with return code of 0 is an error in SDFile.open
{
handleError(404,"File Not Found");
return;
}
int fsizedisk = file.size();
if (file.isDirectory()|| fsizedisk <=0)
{
handleError(500,"cannot send folder only file");
return;
}
Serial.print("file size: "); Serial.println(fsizedisk);
ledState = LOW;
digitalWrite(LED_BUILTIN,ledState);
unsigned long timeBegin = micros();
server.sendHeader("Content-Length",(String)(fsizedisk));
server.sendHeader("Content-disposition","attachment; filename=\"" + fileName + "\"");
server.sendHeader("Cache-Control","max-age=0,no-store"); // do not allow cache
server.sendHeader("Connection","close");
size_t sent = server.streamFile(file,"application/octet-stream");
unsigned long timeEnd = micros();
unsigned long duration = timeEnd - timeBegin;
double averageDuration = (double)duration / 1000.0;
Serial.println("Duration: ");
Serial.print(averageDuration); Serial.println("s");
server.client().stop();
ledState = HIGH;
digitalWrite(LED_BUILTIN,ledState);
file.close();
delay(200);
Serial.print("Data Sent: ");
Serial.println(sent);
delay(200);
}
And here is the Serial Terminal log...
Connected to hc406-ng
IP address: 192.168.0.162
MDNS responder started @GrnAcres-Hi
SdFat version: 2.0.6
Test with GrnAcres-Hi.local/download?file=test.jpg
Or with 192.168.0.162/download?file=test.jpg
HTTP server started
handleFileRequest
Request for: Hello.txt
file size: 13
Duration:
1002.78s
Data Sent: 7
handleFileRequest
Request for: Hello.txt
file size: 13
Duration:
1002.78s
Data Sent: 7
handleFileRequest
Request for: Hello.txt
file size: 13
Duration:
1002.76s
Data Sent: 7
handleFileRequest
Request for: Hello.txt
file size: 13
Duration:
1002.73s
Data Sent: 7
handleFileRequest
Request for: Hello.txt
file size: 13
Duration:
1002.78s
Data Sent: 7
handleFileRequest
Request for: Hello.txt
file size: 13
Duration:
1002.83s
Data Sent: 7
无论我使用哪个文件...(test.jpg 是 15K)...我传输了 50% 的文件,然后再次调用处理程序...一次又一次......一次又一次?
>请注意:以秒为单位的持续时间是关闭的...这只是一个调试值,每个循环只需要 1 秒。我只是想要每个连续调用之间的比率
任何评论都会有很大帮助......提前感谢大家。 干杯
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)