我正在使用QNetworkAccessManager来传输文件.在Debug中构建程序时,我的程序运行没有任何问题.但是在Release中构建问题有一个奇怪的问题:QIODevice :: read(QFile,"我的文件路径"):设备未打开
我的代码有什么问题?谢谢你的帮助!
QHttpMultiPart* getPacket(QString imgPath) { QHttpMultiPart *pMultiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType); QFile *imgFile = new QFile(imgPath); imgFile->setParent(pMultiPart); Q_ASSERT(imgFile->open(QIODevice::ReadWrite)); QHttpPart imagePart; imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg")); imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"img\"; filename=\"target.jpg\"")); imagePart.setBodyDevice(imgFile); pMultiPart->append(imagePart); return pMultiPart; } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); JTest testObj; QNetworkAccessManager manager; QHttpMultiPart *pHMP = getPacket("F:/Temp/1.jpg"); QNetworkReply *pNR = manager.put(QNetworkRequest(QUrl("http://192.168.11.102:8080/Test")), pHMP); QObject::connect( pNR, SIGNAL(finished()), &testObj, SLOT(handleTransmissionFinished()) ); return a.exec(); }
小智.. 5
Q_ASSERT()可用于在开发期间测试前后条件.如果在编译期间定义了QT_NO_DEBUG,它什么都不做.
Q_ASSERT不会在Release中进行评估,因此不会打开您的文件.
Q_ASSERT()可用于在开发期间测试前后条件.如果在编译期间定义了QT_NO_DEBUG,它什么都不做.
Q_ASSERT不会在Release中进行评估,因此不会打开您的文件.