Qt使用QHttpMultiPart发送文件的方法 - 码农教程
QNetworkRequest request;
//request初始化
//发送multi part内容时,不能设置下面一句,否则服务端无法解析边界
//request.setHeader(QNetworkRequest::ContentTypeHeader, "multipart/form-data");
QFile* file = new QFile(path);
file->open(QIODevice::ReadOnly);
QHttpMultiPart *multi_part = new QHttpMultiPart(QHttpMultiPart::FormDataType);
QHttpPart image_part;
image_part.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpg"));
image_part.setHeader(QNetworkRequest::ContentDispositionHeader
, QVariant(QString("form-data; name=\"file\";filename=\"testfile.jpg\";"));
image_part.setBodyDevice(file);
multi_part->append(image_part);
QNetworkReply *reply = manager_.post(request, multi_part);
在这里面需要注意的是,一方面是request不需要设置ContentTypeHeader,另一方面是在QHttpPart的ContentTypeHeader中,要设置对应的图像格式,如果是png,则按照以下方式设置
image_part.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/png"));