Encoder un fichier PDF en base64 (envoi de pièce-jointe)
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:
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 !