cutelyst 4.0.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
upload.h
1/*
2 * SPDX-FileCopyrightText: (C) 2014-2023 Daniel Nicoletti <dantti12@gmail.com>
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5#pragma once
6
7#include <Cutelyst/cutelyst_global.h>
8#include <Cutelyst/headers.h>
9
10#include <QtCore/qiodevice.h>
11
12class QTemporaryFile;
13
14namespace Cutelyst {
15
16class UploadPrivate;
17
21class CUTELYST_LIBRARY Upload final : public QIODevice
22{
23 Q_OBJECT
24 Q_DECLARE_PRIVATE(Upload)
25public:
29 Upload(UploadPrivate *prv);
30 virtual ~Upload() override;
31
35 [[nodiscard]] QString name() const;
36
40 [[nodiscard]] QString filename() const;
41
45 [[nodiscard]] QByteArray contentType() const;
46
50 [[nodiscard]] Headers headers() const;
51
55 bool save(const QString &filename);
56
62 [[nodiscard]] std::unique_ptr<QTemporaryFile>
63 createTemporaryFile(const QString &templateName = {});
64
68 qint64 pos() const override;
69
73 qint64 size() const override;
74
78 bool seek(qint64 pos) override;
79
80protected:
84 qint64 readData(char *data, qint64 maxlen) override;
85
89 qint64 readLineData(char *data, qint64 maxlen) override;
90
94 qint64 writeData(const char *data, qint64 maxSize) override;
95
96 UploadPrivate *d_ptr;
97};
98
99using Uploads = QVector<Upload *>;
100
101} // namespace Cutelyst
Cutelyst Upload handles file upload request
Definition: upload.h:22
The Cutelyst namespace holds all public Cutelyst API.
Definition: Mainpage.dox:8
QVector< Upload * > Uploads
Definition: request.h:26