24 #include <QTemporaryFile>
37 return d->headers.contentType();
51 QString fileTemplate = QStringLiteral(
"%1/qt_temp.XXXXXX");
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();
181 d->name = disposition.
mid(start, end - 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"
QString errorString() const const
QTemporaryFile * createTemporaryFile(const QString &templateName=QString())
virtual bool open(QIODevice::OpenMode mode) override
virtual qint64 readData(char *data, qint64 maxlen) override
bool rename(const QString &newName)
virtual qint64 pos() const override
virtual bool open(QIODevice::OpenMode mode)
bool save(const QString &filename)
virtual bool seek(qint64 pos)
void setErrorString(const QString &str)
virtual qint64 size() const override
virtual qint64 readLineData(char *data, qint64 maxlen) override
bool isEmpty() const const
virtual qint64 writeData(const char *data, qint64 maxSize) override
virtual bool seek(qint64 pos) override
virtual void close() override
int indexOf(QChar ch, int from, Qt::CaseSensitivity cs) const const
Upload(UploadPrivate *prv)
qint64 read(char *data, qint64 maxSize)
The Cutelyst namespace holds all public Cutelyst API.
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const
virtual bool seek(qint64 pos) override
virtual bool atEnd() const const
QString contentType() const
QString mid(int position, int n) const const
Cutelyst Upload handles file upload request
qint64 write(const char *data, qint64 maxSize)