11 #include <QTemporaryFile> 24 return d->headers.contentType();
38 QString fileTemplate = QStringLiteral(
"%1/qt_temp.XXXXXX");
49 qint64 posOrig = d->pos;
54 qint64 in =
read(block,
sizeof(block));
57 if (in != out.write(block, in)) {
69 if (!error && !out.rename(newName)) {
71 setErrorString(QStringLiteral(
"Cannot create %1 for output").arg(newName));
85 #ifndef QT_NO_TEMPORARYFILE 96 qint64 posOrig = d->pos;
101 qint64 in =
read(block,
sizeof(block));
105 if (in != ret->
write(block, in)) {
121 qCWarning(CUTELYST_UPLOAD) <<
"Failed to open temporary file.";
125 Q_UNUSED(templateName)
140 return d->endOffset - d->startOffset;
158 open(prv->device->openMode());
159 const QString disposition = prv->headers.contentDisposition();
160 int start = disposition.
indexOf(u
"name=\"");
163 int end = disposition.indexOf(u
'"', start);
165 d->name = disposition.mid(start, end - start);
169 start = disposition.indexOf(u
"filename=\"");
172 int end = disposition.indexOf(
QLatin1Char(
'"'), start);
174 d->filename = disposition.mid(start, end - start);
193 qint64 posOrig = d->device->pos();
195 d->device->seek(d->startOffset + d->pos);
196 qint64 len = d->device->read(data, qMin(
size() - d->pos, maxlen));
197 d->device->seek(posOrig);
205 qint64 posOrig = d->device->pos();
207 d->device->seek(d->startOffset + d->pos);
208 qint64 len = d->device->readLine(data, qMin(
size() - d->pos, maxlen));
209 d->device->seek(posOrig);
221 #include "moc_upload.cpp" int indexOf(QChar ch, int from, Qt::CaseSensitivity cs) const const
virtual bool atEnd() const const
virtual bool seek(qint64 pos)
virtual qint64 readLineData(char *data, qint64 maxlen) override
QString errorString() const const
virtual qint64 writeData(const char *data, qint64 maxSize) override
virtual bool open(QIODevice::OpenMode mode)
QString contentType() const
Cutelyst Upload handles file upload request
bool isEmpty() const const
qint64 read(char *data, qint64 maxSize)
The Cutelyst namespace holds all public Cutelyst API.
virtual bool seek(qint64 pos) override
virtual void close() override
virtual bool seek(qint64 pos) override
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const
bool save(const QString &filename)
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
QTemporaryFile * createTemporaryFile(const QString &templateName=QString())
virtual qint64 size() const override