summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTasuku Suzuki <tasuku.suzuki@qbc.io>2019-04-27 15:54:53 +0900
committerTasuku Suzuki <tasuku.suzuki@qbc.io>2019-06-14 15:19:29 +0900
commitfc7908e628072c8d06aa4519add8a10d990ac76d (patch)
treef5a98151561b4cd7400f7e675338a2885af3fff2 /src
parentc88c462ac7b7fd12a842cd2d77a8f4eef63a9bcd (diff)
Introduce QHttpServerResponse::fromFile()
This is a shortcut for static file contents. Change-Id: I54d97c60822e661c1405f27ea8d4598f0363b144 Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/httpserver/qhttpserverresponse.cpp12
-rw-r--r--src/httpserver/qhttpserverresponse.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/src/httpserver/qhttpserverresponse.cpp b/src/httpserver/qhttpserverresponse.cpp
index 870be8d..72ec7ac 100644
--- a/src/httpserver/qhttpserverresponse.cpp
+++ b/src/httpserver/qhttpserverresponse.cpp
@@ -31,6 +31,7 @@
#include <private/qhttpserverresponse_p.h>
+#include <QtCore/qfile.h>
#include <QtCore/qjsondocument.h>
#include <QtCore/qjsonobject.h>
#include <QtCore/qmimedatabase.h>
@@ -85,6 +86,17 @@ QHttpServerResponse::~QHttpServerResponse()
{
}
+QHttpServerResponse QHttpServerResponse::fromFile(const QString &fileName)
+{
+ QFile file(fileName);
+ if (!file.open(QFile::ReadOnly))
+ return QHttpServerResponse(StatusCode::NotFound);
+ const QByteArray data = file.readAll();
+ file.close();
+ const QByteArray mimeType = QMimeDatabase().mimeTypeForFileNameAndData(fileName, data).name().toLocal8Bit();
+ return QHttpServerResponse(mimeType, data);
+}
+
QHttpServerResponse::QHttpServerResponse(QHttpServerResponsePrivate *d)
: d_ptr(d)
{
diff --git a/src/httpserver/qhttpserverresponse.h b/src/httpserver/qhttpserverresponse.h
index 2ee0c0d..89e5b9e 100644
--- a/src/httpserver/qhttpserverresponse.h
+++ b/src/httpserver/qhttpserverresponse.h
@@ -62,6 +62,7 @@ public:
const QByteArray &data,
const StatusCode status = StatusCode::Ok);
virtual ~QHttpServerResponse();
+ static QHttpServerResponse fromFile(const QString &fileName);
QByteArray data() const;