添加项目文件。
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
#pragma once
|
||||
#include "Global.h"
|
||||
#include "IPTable.h"
|
||||
#include <functional>
|
||||
#include "WebFileInfo.h"
|
||||
#include "HTTPObjects.h"
|
||||
|
||||
using FileProcessorCallback = std::function<void(WebFileInfoVec, const std::string&)>;
|
||||
|
||||
class UNSWSC_DLL_EXPORT FileReceiver
|
||||
{
|
||||
protected:
|
||||
class Impl;
|
||||
std::unique_ptr<Impl> pimpl;
|
||||
|
||||
public:
|
||||
FileReceiver();
|
||||
virtual ~FileReceiver(); // 基类必须有虚析构函数!
|
||||
|
||||
public:
|
||||
bool CallFileProcesser();
|
||||
void SetResponseMode(bool html);
|
||||
void SetCORSEnable(bool enable);
|
||||
std::string EncodeUploadResult();
|
||||
std::string EncodeUploadResultHTML();
|
||||
void UpdateBlockedIPs(IPTablePtr ip);
|
||||
void SetTempRoot(std::string temp_root);
|
||||
void SetFileCallback(FileProcessorCallback fpcb);
|
||||
uns::HTTPMethod GetMethod(uns::RequestPtr request);
|
||||
void AppenedBlockedIP(DateTime::Span block_time, std::string ip);
|
||||
bool WriteFile(const std::string& path, const std::string& bytes);
|
||||
|
||||
public:
|
||||
virtual uns::Status PreCheckRequest(uns::RequestPtr request) = 0;
|
||||
virtual bool PreCheckForm(uns::FormPartPtr form) = 0;
|
||||
virtual uns::PathTraversalDefenceLevel PTDefence();
|
||||
virtual bool IsPathSafe(const std::string& raw_path);
|
||||
|
||||
public:
|
||||
// 核心驱动入口:供内部适配器调用的实际执行流
|
||||
uns::ResponsePtr Execute(uns::RequestPtr request);
|
||||
};
|
||||
|
||||
using FileReceiverPtr = std::shared_ptr<FileReceiver>;
|
||||
Reference in New Issue
Block a user