24 #include <QTemporaryFile>
26 using namespace Cutelyst;
37 return d->headers.contentType();
51 QString fileTemplate = QStringLiteral(
"%1/qt_temp.XXXXXX");
53 if (!out.open(QIODevice::ReadWrite)) {
62 qint64 posOrig = d->pos;
68 qint64 in =
read(block,
sizeof(block));
72 if (in != out.write(block, in)) {
84 if (!error && !out.rename(newName)) {
86 setErrorString(QStringLiteral(
"Cannot create %1 for output").arg(newName));
100 #ifndef QT_NO_TEMPORARYFILE
111 qint64 posOrig = d->pos;
115 qint64 totalRead = 0;
117 qint64 in =
read(block,
sizeof(block));
121 if (in != ret->
write(block, in)) {
137 qCWarning(CUTELYST_UPLOAD) <<
"Failed to open temporary file.";
141 Q_UNUSED(templateName)
156 return d->endOffset - d->startOffset;
174 open(prv->device->openMode());
175 const QString disposition = prv->headers.contentDisposition();
179 int end = disposition.indexOf(
QLatin1Char(
'"'), start);
181 d->name = disposition.mid(start, end - start);
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"
int indexOf(QChar ch, int from, Qt::CaseSensitivity cs) const
virtual bool atEnd() const
virtual bool seek(qint64 pos)
virtual qint64 readLineData(char *data, qint64 maxlen) override
QString errorString() const
virtual qint64 writeData(const char *data, qint64 maxSize) override
virtual bool open(OpenMode mode)
Cutelyst Upload handles file upload request
qint64 read(char *data, qint64 maxSize)
virtual bool seek(qint64 pos) override
virtual bool seek(qint64 pos)
bool save(const QString &filename)
QString contentType() const
qint64 write(const char *data, qint64 maxSize)
void setErrorString(const QString &str)
Upload(UploadPrivate *prv)
virtual qint64 pos() const override
virtual qint64 readData(char *data, qint64 maxlen) override
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const
QTemporaryFile * createTemporaryFile(const QString &templateName=QString())
virtual qint64 size() const override