Delphi をサーバーとして使用して、さまざまなリクエストに対応しています。単純な文字列はすべて正常に動作しますが、ファイルの受信に問題があります。
すべて Webbroker サービスを使用して実装されているため、メソッドを取得します
WebModule1WebActionItem1Action(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
type=mtPost の /test メソッドがあります。
アクションの中で、次のことを行います。
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>
何が間違っているのか、そしてそれを解決する方法を教えてくれる人に感謝します。基本的に、MIME タイプを含め、一度に 1 つのファイルを受信できるようにする必要があるだけです (後でファイルを提供するときに返す必要があるため)