当前位置: 首页 > article >正文

ESP32-Web-Server编程-通过 Web 下载文本

ESP32-Web-Server编程-通过 Web 下载文本

概述

当你希望通过网页导出设备的数据时,可以在 ESP32 上部署一个简单的文件 Web 服务器。

需求及功能解析

本节演示如何在 ESP32 上部署一个最简单的 Web 服务器,来接收浏览器或者 wget 指令请求文件数据。

示例解析

目录结构

├── CMakeLists.txt
├── main
│   ├── CMakeLists.txt
│   └── main.c                 User application
└── README.md                  This is the file you are currently reading
  • 目录结构主要包含主目录 main。

前端代码

该示例非常简单,不需要前端文件。

后端代码

后端代码建立了一个 URL 为 /record 的 bin_get_handler(),当用户访问该 URL 时,将执行该 handler 函数:

httpd_uri_t record_file_uri = {
        .uri = "/record",
        .method = HTTP_GET,
        .handler = bin_get_handler,
        .user_ctx = NULL
    };

bin_get_handler()中,将数组中的数据发送到浏览器,并并命为 record.bin

char data_buf[] = {0x00, 0x01, 0x02, 0x03};

httpd_resp_set_type(req, "application/octet-stream");
httpd_resp_set_hdr(req, "Content-Disposition", "inline; filename=record.bin"); // default name is record.bin
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");

if (res == ESP_OK) {
    res = httpd_resp_send_chunk(req, (const char *)data_buf, sizeof(data_buf)/sizeof(char));

示例效果

在网页建立后,输入类似 http://192.168.47.100/record 的网址,将自动下载数据内容为 record.bin:

在这里插入图片描述

讨论

1)通过网页下载设备上的数据,这种无前端文件的 Web 服务器非常有用。相比串口、这种下载速度快,使用更便捷。

总结

1)本节主要是介绍通过 ESP32 Web Server 实现在网页端下载设备上的数据为一个文件。

资源链接

1)ESP32-Web-Server ESP-IDF系列博客介绍
2)对应示例的 code 链接 (点击直达代码仓库)

3)下一篇:

(码字不易感谢点赞或收藏)


http://www.kler.cn/a/157539.html

相关文章:

  • 南城云趣:智能云平台,杜绝电动车充电安全隐患
  • Windows11 离线更新 WSL
  • 基于LSB最低有效位的音频水印嵌入提取算法FPGA实现,包含testbench和MATLAB对比
  • 全面解析 Golang Gin 框架
  • 内容与资讯API优质清单
  • 排序算法(3)——归并排序、计数排序
  • 基于APM(PIX)飞控和mission planner制作遥控无人车-从零搭建自主pix无人车普通舵机转向无人车-1(以乐迪crossflight飞控为例)
  • 关于#c++#的问题:将输入的字符串a复制给字符串b,然后用数组名a和b输出两个字符串(相关搜索:指针变量)
  • qt使用wimlib-imagex,做windows系统备份还原
  • python爬虫非对称加密RSA案例:某观鸟网站
  • 【离散数学】——期末刷题题库(集合)
  • 如何使用Node.js快速创建本地HTTP服务器并实现异地远程访问
  • 源码安装git
  • php之zip文件中压缩、解压、增加文件、删除
  • Linux系统下Nginx的安装步骤
  • 10、SQL注入——数据库基础
  • JS浮点数精度问题及解决方案
  • kk(kubeadmin)在麒麟与centos安装k8s集群踩坑记录
  • Unity优化篇:对于unity DrawCall/Mesh/纹理压缩/内存等方面的常规调试和优化手段
  • css实现正六边形嵌套圆心
  • 网络安全(二)-- Linux 基本安全防护技术
  • 丢掉破解版,官方免费了!!!
  • Mybatis相关API(Sqlsession和sqlsessionFactroy)
  • 海云安参与制定《信息安全技术 移动互联网应用程序(App)软件开发工具包(SDK)安全要求》标准正式发布
  • 电脑如何录音?适合初学者的详细教程
  • python获取阿里云云解析dns的域名解析记录