2016-08-09 7 views
1

Я работаю над STM32. Я пытаюсь создать веб-сервер на базе STM32. Во-первых, я реализую файловую систему на Flash SPI и записываю ее в браузер с библиотеками LWIP. Все работает отлично с html-файлом без каких-либо «src». Теперь я хочу добавить изображения на веб-страницу, что означает, что мне также нужно иметь изображения на моей SPI-вспышке. Думаю, я должен отформатировать изображение прежде, чем я его сохраню? и если он хранится в SPI-вспышке. как html использует изображение? у кого есть идея?Веб-сервер STM32 - Как файл html в «SPI 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); 


    } 

Вот как я пишу свою html-страницу в веб-браузере с помощью LWIP Lib. И html хранится в связанной файловой системе флэш-файла.

ответ

0

Ничего особенного.

Когда браузер загружает страницу html, он анализирует все дерево объектов. Объекты изображений представляют URL-адрес изображения.

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

Затем браузер загружает каждое изображение в запросе separete. Таким образом, ваш сервер получит запрос с контуром изображения для каждого из них и должен вернуть правильный http-пакет с изображением без каких-либо дополнительных форматов. Как вернуть изображение, пакет должен удовлетвориться соответствующие заголовки:

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 или может быть другой, если вы будете использовать.

Поэтому у вас достаточно кода для отправки любых изображений, просто измените тип контента.