2016-08-09 24 views
1

私はSTM32で作業しています。私はSTM32に基づいてWebサーバーを構築しようとしています。まず、SPIフラッシュ上にファイルシステムを実装し、LWIPライブラリを使用してブラウザに書き込みます。すべての "src"のないhtmlファイルでうまく動作します。今私はWebページに画像を追加したいのです。つまり、私のSPIフラッシュにも画像が必要です。私はそれを格納する前にイメージをフォーマットする必要がありますか?それがSPIフラッシュに格納されているかどうかを示します。どのようにHTMLの画像を使用する?誰もそれについて考えている?STM32 Webサーバー - "SPI Flash"のhtmlファイルが "image"をフラッシュで読み取る方法

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


    } 

これは、WebページをLWIP LibでWebブラウザに書き込む方法です。そして、HTMLは、リンクされたフラッシュファイルシステムのリストに格納されています。

答えて

0

特別なことはありません。

ブラウザがHTMLページを読み込むと、オブジェクトのツリー全体が解析されます。画像のオブジェクトには、画像を表示するURLが表示されます。

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

ブラウザは、各画像を個別の要求で読み込みます。したがって、あなたのサーバーは、それぞれのイメージパスでリクエストを受け取り、追加のフォーマットなしでイメージとともに正しいhttpパッケージを返さなければなりません。あなたがイメージを返すと、あなたのパッケージには、対応するヘッダをコンテンツする必要があります。

Content-Length: image_len_in_bytes 
Content-Type: image_media_type 

ありimage_media_typeimage/gifimage/pngimage/jpegimage/bmpimage/x-iconことができるか、使用する場合は、別のかもしれません。

画像を送信するのに十分なコードがあるので、コンテンツタイプを変更するだけです。

関連する問題