Russian Qt Forum

Qt => Общие вопросы => Тема начата: demaker от Август 10, 2017, 16:01



Название: Копирование файла
Отправлено: demaker от Август 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 открывать,
выдает ошибку что типа что файл не является правильным точечным рисунком.

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

Подскажите как решить проблему?


Название: Re: Копирование файла
Отправлено: demaker от Август 10, 2017, 18:24
 ;D забыл qiodevice::append