TWebResponse没有解析我发布的文件

时间:2013-03-21 00:22:38

标签: delphi rest post delphi-xe3

我有一个简单的DataSnap REST服务器,在TWebModule上我添加了一个动作来侦听路径“/ upload_file”上的POST请求。 在onAction事件中,我有这段代码:

procedure TWebModule.WebModulePostFileAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var i: Integer;
  str: String;
begin
  for i :=0 to Request.Files.Count-1 do
  Begin
    Str:= Str +','+ Request.Files.Items[i].FileName;
    // I will like to save or move the uploaded file to i.e. c:\myFiles\
  End;
  Response.Content:= Str;
end;

Request.Files.Count始终为0,但是当我检查Request.content对象时,我可以看到多部分文件内容。如何从请求中获取发布的文件?并将其保存在磁盘中的某个位置 我发布的HTML表格如下:

<form action="/upload_file" method="POST" enctype="multipart/form-data">
  Notes: <input type="text" name="notes"/>
  File: <input type="file" name="my_file"/>
  <input type="submit" value="Submit">
</form>

不幸的是,没有太多关于这个主题的信息,我几个小时都尝试了许多事情,但没有成功。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

查看相关问题TIdHTTPServer file upload并回答https://stackoverflow.com/a/6197138/80901

  

TIdHTTPServer目前不支持multipart / form-data   本地提交。这是Indy 11的待办事项列表   同时,您必须使用手动解析发布的MIME数据   TIdDecoderMIME,正如mjn所建议的那样。有这样的例子   之前发布在Embarcadero和Indy论坛。