diff --git a/src/module/http/request.cpp b/src/module/http/request.cpp
index f58a6c0..f582b27 100644
--- a/src/module/http/request.cpp
+++ b/src/module/http/request.cpp
@@ -9,10 +9,6 @@ module::request::~request()
if (m_session != nullptr)
delete m_session;
}
-std::string module::request::token()
-{
- return m_request->token();
-}
module::session* module::request::session(const std::string& token)
{
if (m_session == nullptr)
@@ -45,6 +41,32 @@ void* module::request::website()
{
return m_request->website();
}
+sol::table module::request::files(sol::this_state s)
+{
+ auto names = m_request->parser()->form()->names();
+ sol::state_view lua(s);
+ sol::table result_table = lua.create_table();
+
+ int count = 1;
+ for (size_t i = 0; i < names.size(); i++)
+ {
+ sol::table file = lua.create_table();
+ network::http::form_info fi;
+ if (m_request->parser()->form()->get(names[i], fi))
+ {
+ file["type"] = fi.content_type;
+ file["size"] = fi.data.size();
+ file["filename"] = fi.filename;
+ result_table[count] = file;
+ count++;
+ }
+ }
+ return result_table;
+}
+bool module::request::write_file(const std::string& name, const std::string& filepath)
+{
+ return m_request->parser()->form()->write_file(name,filepath);
+}
void module::request::regist(sol::state* lua)
{
// 绑定 Request 类到 Lua
@@ -57,10 +79,11 @@ void module::request::regist(sol::state* lua)
"remote_port", &module::request::remote_port,
"param", &module::request::param,
"session", &module::request::session,
- "token", &module::request::token,
"body_param", &module::request::body_param,
"url_param", &module::request::url_param,
- "body", &module::request::body
+ "body", &module::request::body,
+ "files", &module::request::files,
+ "write_file", &module::request::write_file
);
(*lua)["GET"] = (int)network::http::GET;
(*lua)["POST"] = (int)network::http::POST;
diff --git a/src/module/http/request.h b/src/module/http/request.h
index c07013e..57465dd 100644
--- a/src/module/http/request.h
+++ b/src/module/http/request.h
@@ -52,11 +52,6 @@ namespace module
///
ushort remote_port();
///
- /// 取token
- ///
- ///
- std::string token();
- ///
/// 取session
///
///
@@ -85,6 +80,19 @@ namespace module
///
void* website();
+ ///
+ /// 取文件列表
+ ///
+ ///
+ sol::table files(sol::this_state s);
+ ///
+ /// 保存文件
+ ///
+ ///
+ ///
+ ///
+ bool write_file(const std::string& name,const std::string& filepath);
+
static void regist(sol::state* lua);
private:
bool request_param(const std::string& name, std::string& value);