首页 > 解决方案 > How to append QFile to QList

问题描述

I am creating a post form-data request with 10 to 15 images in them. to minimize the code, I am using QList in order to store the location of the images

Ihave tried changing QList * files = new QList to QList files but i am getting an error

 C:\Qt_Projects\SecretaryApp\handler.cpp:130: error: no matching function for call to 'QList<QFile>::append(QFile*&)'
     files.append((tempfile));
                             ^

Here is the code inside the function

QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
multiPart->setBoundary("----WebKitFormBoundary7MA4YWxkTrZu0gW");


QList<QFile>  * files = new QList<QFile>;
QList<QHttpPart> fileparts;


for(int i=0;i<urls.length();i++)
{
    QFile * tempfile = new QFile(urls[i].toLocalFile());

    tempfile->open(QIODevice::ReadOnly);

    qDebug()<<urls[i].toLocalFile();

    files->append((tempfile));  <------error here
}


for(int i=0;i<urls.length();i++)
{
        QHttpPart filePart;
        filePart.setHeader(QNetworkRequest::ContentDispositionHeader,QVariant("form-data; name=\"uploadImage\"; filename="+files[i]->fileName()));
        filePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpg"));   // file type header MIME type
        filePart.setBodyDevice(files[i]);

        fileparts.append(filePart);
}


for(int i=0;i<urls.length();i++)
        files[i].setParent(multiPart);

for(int i=0;i<urls.length();i++)
        multiPart->append(fileparts[i]);

QNetworkRequest request((QUrl(sendImageAPI)));

How do i fix this error. Is this possible ? or should i be better off using vectors?

标签: qt

解决方案


改变

QList<QFile>  * files = new QList<QFile>;

QList<QFile * >  files;

或者如果您需要堆上的列表:

QList<QFile *>  * files = new QList<QFile *>;

因为你使用QFile *<- 指针


推荐阅读