Возникла проблема при отправке данных на сервер, а конкретно изображений ...
QTcpSocket* clientSocket = (QTcpSocket*)sender();
int idusersocs=clientSocket->socketDescriptor();
QByteArray str = clientSocket->readAll();
//path image
QString path("D:/Projects Programing/IBM PC/Test ScreenShoot/build-Daemon-Desktop_Qt_5_3_0_MinGW_32bit-Debug/debug/647_png_639.png");
// Пример отправки ответа клиенту
QTextStream os(clientSocket);
QTextCodec *codec = QTextCodec::codecForLocale();
QByteArray boundary = "Adbfnmhvhdbkiv";
QFile file(path);
if (!file.open(QIODevice::ReadOnly))
{
qDebug()<<"error read image";
return;
}
QByteArray fileContent = file.readAll();
QByteArray data = "--" + boundary + "\r\n";
data += "Content-Disposition: form-data; name=\"data\"; filename=\"647_png_639.png\";\r\n";
data += "Content-Type: image/png\r\n\r\n" + fileContent + "\r\n";
data += "--" + boundary + "--\r\n";
//os.setAutoDetectUnicode(true);
//os.setCodec(codec);
os << "HTTP/1.1 200 Ok\r\n"
"Content-Type: multipart/form-data; charset=\"utf-8\"; boundary=" << boundary << "\r\n" <<
"Content-Length: " << QString::number(data.size()) << "\r\n" <<
"Connection: close\r\n" <<
data << "\r\n";
clientSocket->waitForBytesWritten();
//qDebug() << clientSocket->readAll()+"\n\r";
// Если нужно закрыть сокет
clientSocket->close();
// Удалим объект сокета из карты
SClients.remove(idusersocs);
Проблема в том что изображение приходит, но меньшего размера и при открытии текстовым редактором исходного и принятого видно, что некоторые символы остались без изменения, а вместо большей части '?'
Я подозреваю что проблема в кодировке потока os, он считает что поступающий массив в другой кодировке !
Как побороть этого беса, подскажите плз ?