STM32 Web 服务器 - "SPI Flash" 中的 html 文件如何读取闪存中的 "image"
STM32 Web server - How html file in "SPI Flash" read "image" in flash
我正在研究 STM32。我正在尝试构建一个基于 STM32 的网络服务器。首先,我在 SPI 闪存上实现了一个文件系统,并使用 LWIP 库将其写入浏览器。没有任何 "src" 的 html 文件一切正常。现在我想在网页上添加图像,这意味着我的 SPI 闪存也需要有图像。我想我应该先格式化图像再存储它?如果它存储在 SPI 闪存中。 html 如何使用图像?有人知道吗?
if ((buflen >=5) && (strncmp(buf, "GET /", 5) == 0))
{
FileNodeId = Find_File_Node(WEBPAGE);
if(Load_File_Table() != VAT_SUCCESS) return VAT_UNKNOWN;
else{
for(int i = 1;i <= File_Table[FileNodeId].numSector;i++){
READSector(WEBPAGE,&webbuf[0],i);
int html_length=strlen(&webbuf[0]);
netconn_write(conn,&webbuf[0], html_length, NETCONN_COPY);
memset(&webbuf[0],0,4080);
}
}
netbuf_delete(inbuf);
}
这就是我使用 LWIP Lib 将 html 页面写入 Web 浏览器的方式。 html 存储在 link 列出的闪存文件系统中。
没什么特别的。
当浏览器加载 html 页面时,它会解析 objects 的整个树。 Objects 的图像与 url 图像一起呈现。
<img src="url_path/image_name.png"/>
然后浏览器在单独的请求中加载每个图像。因此,您的服务器将获得每个请求的图像路径,并且必须 return 正确的带有图像的 http 包,没有任何其他格式。如你return图片,你的包裹必须包含对应的headers:
Content-Length: image_len_in_bytes
Content-Type: image_media_type
image_media_type
可以是 image/gif
、image/png
、image/jpeg
、image/bmp
、image/x-icon
或者如果您要使用的话也可以是其他的.
所以你有足够的代码来发送任何图像,只需更改内容类型。
我正在研究 STM32。我正在尝试构建一个基于 STM32 的网络服务器。首先,我在 SPI 闪存上实现了一个文件系统,并使用 LWIP 库将其写入浏览器。没有任何 "src" 的 html 文件一切正常。现在我想在网页上添加图像,这意味着我的 SPI 闪存也需要有图像。我想我应该先格式化图像再存储它?如果它存储在 SPI 闪存中。 html 如何使用图像?有人知道吗?
if ((buflen >=5) && (strncmp(buf, "GET /", 5) == 0))
{
FileNodeId = Find_File_Node(WEBPAGE);
if(Load_File_Table() != VAT_SUCCESS) return VAT_UNKNOWN;
else{
for(int i = 1;i <= File_Table[FileNodeId].numSector;i++){
READSector(WEBPAGE,&webbuf[0],i);
int html_length=strlen(&webbuf[0]);
netconn_write(conn,&webbuf[0], html_length, NETCONN_COPY);
memset(&webbuf[0],0,4080);
}
}
netbuf_delete(inbuf);
}
这就是我使用 LWIP Lib 将 html 页面写入 Web 浏览器的方式。 html 存储在 link 列出的闪存文件系统中。
没什么特别的。
当浏览器加载 html 页面时,它会解析 objects 的整个树。 Objects 的图像与 url 图像一起呈现。
<img src="url_path/image_name.png"/>
然后浏览器在单独的请求中加载每个图像。因此,您的服务器将获得每个请求的图像路径,并且必须 return 正确的带有图像的 http 包,没有任何其他格式。如你return图片,你的包裹必须包含对应的headers:
Content-Length: image_len_in_bytes
Content-Type: image_media_type
image_media_type
可以是 image/gif
、image/png
、image/jpeg
、image/bmp
、image/x-icon
或者如果您要使用的话也可以是其他的.
所以你有足够的代码来发送任何图像,只需更改内容类型。