2016-08-09 1 views
1

Je travaille sur STM32. J'essaye de construire un serveur Web basé sur STM32. Tout d'abord, j'implémente un système de fichiers sur SPI flash et l'écris au navigateur avec les bibliothèques LWIP. Tout fonctionne bien avec un fichier html sans "src". Maintenant, je veux ajouter des images sur la page Web, ce qui signifie que j'ai besoin d'avoir des images sur mon flash SPI. Je suppose que je devrais formater l'image avant de la stocker? et si elle est stockée en flash SPI. comment html utilise l'image? Quelqu'un at-il une idée à ce sujet?Serveur Web STM32 - Comment fichier html dans "SPI Flash" lire "image" en flash

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); 


    } 

Voici comment j'écris ma page html dans le navigateur web avec LWIP Lib. Et le code HTML est stocké dans le système de fichiers flash répertorié par lien.

Répondre

0

Rien de spécial. Lorsque le navigateur charge la page html, il analyse l'arbre entier des objets.

Les objets d'images se présentent avec l'URL à l'image.

<img src="url_path/image_name.png"/> 

Ensuite, le navigateur charge chaque image dans une requête séparée. Ainsi, votre serveur obtiendra une requête avec le chemin de l'image pour chacun et devra renvoyer le paquet http correct avec l'image sans aucun format supplémentaire. Comme vous retournez l'image, votre colis doit contenu en-têtes correspondants:

Content-Length: image_len_in_bytes 
Content-Type: image_media_type 

Il image_media_type peut être image/gif, image/png, image/jpeg, image/bmp, image/x-icon ou peut-être une autre si vous utiliserez.

Donc, vous avez assez de code pour envoyer des images, il suffit de changer le type de contenu.