24 #include <QTemporaryFile>
37 return d->headers.contentType();
51 QString fileTemplate = QStringLiteral(
"%1/qt_temp.XXXXXX");
52 QFile out(fileTemplate.arg(QFileInfo(newName).path()));
53 if (!out.open(QIODevice::ReadWrite)) {
59 setErrorString(QLatin1String(
"Failed to open file for saving: ") + out.errorString());
60 qCWarning(CUTELYST_UPLOAD) << errorString();
62 qint64 posOrig = d->pos;
68 qint64 in = read(block,
sizeof(block));
72 if (in != out.write(block, in)) {
73 setErrorString(QLatin1String(
"Failure to write block"));
74 qCWarning(CUTELYST_UPLOAD) << errorString();
84 if (!error && !out.rename(newName)) {
86 setErrorString(QStringLiteral(
"Cannot create %1 for output").arg(newName));
87 qCWarning(CUTELYST_UPLOAD) << errorString();
100 #ifndef QT_NO_TEMPORARYFILE
103 if (templateName.isEmpty()) {
104 ret =
new QTemporaryFile(
this);
106 ret =
new QTemporaryFile(templateName,
this);
111 qint64 posOrig = d->pos;
115 qint64 totalRead = 0;
117 qint64 in = read(block,
sizeof(block));
121 if (in != ret->write(block, in)) {
122 setErrorString(QLatin1String(
"Failure to write block"));
123 qCWarning(CUTELYST_UPLOAD) << errorString();
137 qCWarning(CUTELYST_UPLOAD) <<
"Failed to open temporary file.";
141 Q_UNUSED(templateName)
156 return d->endOffset - d->startOffset;
163 QIODevice::seek(
pos);
174 open(prv->device->openMode());
175 const QString disposition = prv->headers.contentDisposition();
176 int start = disposition.indexOf(QLatin1String(
"name=\""));
179 int end = disposition.indexOf(QLatin1Char(
'"'), start);
181 d->name = disposition.mid(start, end - start);
185 start = disposition.indexOf(QLatin1String(
"filename=\""));
188 int end = disposition.indexOf(QLatin1Char(
'"'), start);
190 d->filename = disposition.mid(start, end - start);
209 qint64 posOrig = d->device->pos();
211 d->device->seek(d->startOffset + d->pos);
212 qint64 len = d->device->read(data,
213 qMin(
size() - d->pos, maxlen));
214 d->device->seek(posOrig);
222 qint64 posOrig = d->device->pos();
224 d->device->seek(d->startOffset + d->pos);
225 qint64 len = d->device->readLine(data,
226 qMin(
size() - d->pos, maxlen));
227 d->device->seek(posOrig);
237 #include "moc_upload.cpp"