我正在创建一个包含10到15张图片的post表单数据请求。为了最小化代码,我使用QList来存储图像的位置
我尝试过将QList * QList =新的QList文件更改为QList文件,但是我得到了一个错误
C:\Qt_Projects\SecretaryApp\handler.cpp:130: error: no matching function for call to 'QList<QFile>::append(QFile*&)'
files.append((tempfile));
^下面是函数内部的代码
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)));我如何纠正这个错误。这有可能吗?还是我应该更好地使用向量?
发布于 2019-01-24 15:07:04
变化
QList<QFile> * files = new QList<QFile>;至
QList<QFile * > files;或者如果您需要堆上的列表:
QList<QFile *> * files = new QList<QFile *>;因为您使用QFile * <-指针
发布于 2019-01-24 15:23:29
除了@Xplatforms答案之外,我还要补充一点,您应该小心使用新的对象所有权。我更喜欢用:
QList<QFile *> files如果可以的话。或者,如果之后不手动调用delete,则可能会出现内存泄漏。QFiles是可以的,因为您是通过调用setParent来传递所有权的(假设multiPart被正确删除)。
https://stackoverflow.com/questions/54349589
复制相似问题