Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Картинки по http, Как отправить клиенту? 
V
    Опции темы
sidslog
Дата 14.1.2007, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 25.10.2006
Где: Москва

Репутация: нет
Всего: нет



Клиент  - браузер.
Пробовал отправлять : в content-type писал image/png,
в message-body отправлял собственно картинку:
Код

    FILE * f;
    f = fopen("1.png","r");
    char * buf = new char[256];
    memset(buf,0,256*sizeof(char));
    while(!feof(f)){
        fgets(buf,255,f);
        send(sRequest->socket,buf,strlen(buf),0);
    }


Браузер пишет, что картинка содержит ошибки. Может картинки по-другому надо отправлять?

Это сообщение отредактировал(а) sidslog - 14.1.2007, 14:44
PM MAIL ICQ GTalk   Вверх
ptr
Дата 14.1.2007, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



Работать с картинкой нужно как с бинарным файлом:
Код

f = fopen("1.png","rb");



--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
sidslog
Дата 14.1.2007, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 25.10.2006
Где: Москва

Репутация: нет
Всего: нет



Да, точно.
Но браузер файл все равно не отображает.
Отправил как text/html - вроде похоже на правду(во всяком случае в начале ‰PNG а в конце IEND®B`‚).
Весь ответ:

HTTP/1.1 200 OK
Date: Tue, 07 Nov 2006 19:03:35 GMT
Content-Type: text/html

Дальше картинка. 

Может какие - то еще хидеры нужны?
PM MAIL ICQ GTalk   Вверх
sidslog
Дата 14.1.2007, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 25.10.2006
Где: Москва

Репутация: нет
Всего: нет



Файл неправильно считывал. Сделал ReadFileом и все заработало
PM MAIL ICQ GTalk   Вверх
keksus
Дата 16.1.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 29.9.2006

Репутация: нет
Всего: нет



Можно и без ReadFile'а, если внимательно код писать

fgets читает строку, картинку же логичнее читать freadом

Код

size_t len = fread(buf, sizeof(char), 256, f);
send(sRequest->socket, buf, len, 0);


PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.