删除token,增加获取文件列表与保存上传文件

This commit is contained in:
xx
2024-06-09 23:30:19 +08:00
parent 1ccafbf657
commit cd45a258d6
2 changed files with 42 additions and 11 deletions

View File

@@ -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;

View File

@@ -52,11 +52,6 @@ namespace module
/// <returns></returns>
ushort remote_port();
/// <summary>
/// 取token
/// </summary>
/// <returns></returns>
std::string token();
/// <summary>
/// 取session
/// </summary>
/// <param name="token"></param>
@@ -85,6 +80,19 @@ namespace module
/// <returns></returns>
void* website();
/// <summary>
/// 取文件列表
/// </summary>
/// <returns></returns>
sol::table files(sol::this_state s);
/// <summary>
/// 保存文件
/// </summary>
/// <param name="name"></param>
/// <param name="filepath"></param>
/// <returns></returns>
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);