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) !
Pour info, le fichier est un PDF que je souhaite envoyer en pièce-jointe dans un message.
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"); }
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 !
Partager