Bonjour à tous,

Je bloque sur un problème d'encodage en base64 avec un QByteArray.
Lorsque j'encode ce fichier avec la méthode QByteArray::toBase64(), je me retrouve avec un contenu vide (QString) !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
QFile file(cheminPJ);
QByteArray pj;
 
if(file.exists())
{
    if(!file.open(QIODevice::ReadOnly))
    {
        QMessageBox::warning(0, tr("Ouverture impossible"), tr("Impossible de lire le fichier !\n\n"));
    }
    pj = file.readAll();
 
    message.append( "--frontier\n" );
    message.append("Content-Type: application/octet-stream\n");
    message.append("Content-Disposition: attachment; filename="+QFileInfo(file.fileName()).fileName()+";\nContent-Transfer-Encoding: base64\n\n");
    message.append(pj.toBase64());
    message.append("\n");
}
Pour info, le fichier est un PDF que je souhaite envoyer en pièce-jointe dans un message.
J'utilise aussi QSslSocket pour échanger avec le serveur SMTP.
La variable "message" est un QString.

Est-ce dû à la taille du fichier PDF ?

Merci d'avance pour votre aide !

P.S. : qDebug() << pj.toBase64(); ne s'affiche pas dans la console !