我使用 Delphi 作为服务器来处理许多不同的请求。所有这些都是简单的字符串都可以正常工作,但是我在接收文件时遇到了一些麻烦。
所有都是使用Webbroker服务实现的,所以我得到了一个方法
WebModule1WebActionItem1Action(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
我有一个 /test 方法,type=mtPost。
在动作内部,我执行以下操作:
MimeType := Request.ContentFields.Values['MimeType'];
for i := 0 to Request.Files.Count-1 do begin
// never entered
aFile := Request.Files.Items[i];
ms := TMemoryStream.Create;
aFile.Stream.Position := 0;
ms.CopyFrom(aFile.Stream, aFile.Stream.Size);
ms.SaveToFile(path+aFile.FileName);
ms.free;
end;
显然,我发送的任何内容都不会被识别为文件,但我不知道为什么。用于发布的 HTML 如下所示:
<form id="myForm" action="http://localhost:8080/test" method="post" enctype="multipart/form-data">
<input type="file" size="60" name="myfile">
<input type="text" size="10" name="mimetype" value="image/hest">
<input type="submit" value="upload">
</form>
我会感谢任何人告诉我可能出了什么问题 - 以及如何解决它。基本上我当时只需要能够接收1个文件,包括mimetype(因为我需要在稍后提供文件时返回它)