TsgcWebSocketHTTPServerEvents › OnHTTPUploadBeforeCreatePostStream

OnHTTPUploadBeforeCreatePostStream 事件

在读取请求头并在创建 POST 流之前触发,以便接受或拒绝上传。

语法

property OnHTTPUploadBeforeCreatePostStream: TsgcWSHTTPBeforeCreatePostStream;
// TsgcWSHTTPBeforeCreatePostStream = procedure(Sender: TObject; const Connection: TsgcWSConnection; const aHeaders: TStrings; var Accept: Boolean) of object

默认值

备注

OnHTTPUploadBeforeCreatePostStream 在组件分配 POST 流(根据 HTTPUploadFiles.StreamType,可以是 TMemoryStream 或 TFileStream)之前运行,该流用于存储传入上传的正文。检查 aHeaders(Content-Type、Content-Length、Authorization 等)和 Connection 以决定是否允许上传:将 Accept 设为 True 继续接收正文,设为 False 则丢弃正文并向客户端返回错误。使用此钩子可在大型 multipart/form-data 正文被缓冲到磁盘之前,强制执行大小限制、提早拒绝未授权的上传或验证 Content-Type。

示例


procedure OnHTTPUploadBeforeCreatePostStream(Sender: TObject; const Connection: TsgcWSConnection;
  const aHeaders: TStrings; var Accept: Boolean);
begin
  Accept := StrToIntDef(aHeaders.Values['Content-Length'], 0) <= 100 * 1024 * 1024;
end;

返回事件