我正在研究STM32。我正在尝试构建一个基于STM32的web服务器。首先,我在SPI flash上实现了一个文件系统,并使用LWIP Libraries将其写入浏览器。在没有任何"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被存储在链接列表的flash文件系统中。
发布于 2016-08-09 18:04:06
没有什么特别事情。
当浏览器加载html页面时,它解析整个对象树。图像的对象以图像的url呈现。
<img src="url_path/image_name.png"/>然后浏览器将每个图像加载到独立请求中。因此,您服务器将收到每个请求的图像路径,必须返回正确的http包与图像,没有任何额外的格式。当您返回图片时,您的包必须包含相应的头部:
Content-Length: image_len_in_bytes
Content-Type: image_media_typeimage_media_type可以是image/gif、image/png、image/jpeg、image/bmp、image/x-icon,也可以是其他的。
因此您有足够代码发送任何图像,只需更改内容类型即可。
https://stackoverflow.com/questions/38845156
复制相似问题