Russian Qt Forum
Апрель 16, 2024, 13:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Копирование файла  (Прочитано 2556 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« : Август 10, 2017, 16:01 »

Читаю с графический файла типа .bmp
на клиенте и передаю на сервер
Код
C++ (Qt)
if(file.open(QFile::ReadWrite)){
       file.seek(0);
       while(!file.atEnd())
       {
         const QByteArray buf = file.read(MAX_SIZE_FRAME);
         head_pack headPack;
         headPack.sizePack = buf.size();
         headPack.typePack = TYPE_DATA_FILE;
         headPack.sizePack2 = buf.size();
 
         QByteArray ba;
         ba.append((char *)(&headPack),sizeof(headPack));
         ba.append(buf);
         m_pTcpSocket->write(ba);
         m_pTcpSocket->waitForBytesWritten(1);
       }
 
 

читаю передаваемые посылки на сервере и пишу в файл-копию
Код
C++ (Qt)
...
file.setFileName("COPY");
if(file.open(QIODevice::ReadWrite)){
blockSize += file.write(&pData.data()[0],headPack.sizePack);
file.close();
}
 

текстовый файл передается нормально, открываю и текст совпадает с исходником.
А вот если передаю файл с изображением, то он даже не хочет его в Paint открывать,
выдает ошибку что типа что файл не является правильным точечным рисунком.

Открывал переданный файл там вроде якобы не хватает заголовка.
Но я передавал же файл побайтно и в конце значение записанных байт в файл и размер файла источника совпадают.

Подскажите как решить проблему?
« Последнее редактирование: Август 10, 2017, 16:03 от demaker » Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #1 : Август 10, 2017, 18:24 »

 Смеющийся забыл qiodevice::append
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.162 секунд. Запросов: 22.