在 WebBroker 对应的路径底 开始收不到文件,是因为

1. 网页代码缺少了enctype="multipart/form-data" 这个描述。
2. 没有 uses WEB.ReqMulti;

https://blog.csdn.net/pcplayer/article/details/69230492

 主页面从a01.html导入

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
  FileContent: TStringList;
begin
  FileContent := TStringList.Create;
    // 假设你的HTML文件位于Web服务器的根目录下,文件名为a01.html
    FileContent.LoadFromFile( ExtractFilePath (ParamStr (0))+ '\a01.html');
    Response.Content := FileContent.Text;
    Response.ContentType := 'text/html; charset="UTF-8"';
    Handled := True;
    FileContent.Free;
end;

<form   action="upload" method="post" enctype="multipart/form-data">
     <input type="file" size="60" name="myfile">
     <input type="text" size="10"  >
     <input type="submit" value="上传">
 </form>

 

 此处的/upload 对应的是  <form action="http://127.0.0.1:8080/upload"

再写接收文件事件

procedure TWebModule1.WebModule1uploadAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
Response.Content := inttostr(Request.Files.Count)+ 'sfully';
Handled :=true;
end;

运行测试,点upload,1sul,表明上传一个文件 成功

 

 

procedure TWebModule1.WebModule1uploadAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
 AFileName :string;
 AFile : TFileStream ;
begin
  AFileName := ExtractFileName(Request.Files[0].FileName);
  AFileName := ExtractFilePath(GetModuleName(0)) + AFileName;
    AFile := TFileStream.Create(AFileName, fmCreate);
    Request.Files[0].Stream.Position := 0;
    AFile.CopyFrom(Request.Files[0].Stream, Request.Files[0].Stream.Size);
    AFile.Free;
Response.ContentType := 'text/html; charset="UTF-8"';
Response.Content := AFileName+ ' 上传成功';
   s:=s+ '<input type="button" name="Submit" value="返回"   onclick="location.href=''http://127.0.0.1:8080/''" /> ';
Handled :=true;
end;

https://pan.baidu.com/s/1HCbJdVL6Jvarr3HEhS-y0Q