【问题标题】:File Upload not working with HTML and DataSnap - FileCount=0文件上传不适用于 HTML 和 DataSnap - FileCount=0
【发布时间】:2014-07-08 12:58:42
【问题描述】:

我有一个简单的 HTML 表单:

<form name="UForm" id="UForm" enctype="multipart/form-data" method="post" action="http://localhost:8080/crcJurisUploadFile">  

Select a file 1: <input type="file" name="FileToUpload1" />
<input type="submit" name="btUpload" id="btUpload" value="Upload" />            

</form>

我尝试使用如下所示的代码读取上传的文件。我的结果告诉我 Request.Files.Count = 0。无论我尝试上传什么类型的文件,计数都是 0。

为什么?

我有一个简单的 DataSnap/WebBroker 设置。 WebModule 包括

procedure TWM.WebModule3DefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  ...
  else if SameText(Request.InternalPathInfo, '/crcJurisUploadFile')
                then Response.Content := dm.UploadFile(Request)
  ...
end;

并调用

function TDM.UploadFile(TheRequest : TWebRequest): string;
var
  i : integer;
  HoldStr : string;
begin
  HoldStr := 'Content-Type=' + TheRequest.ContentType + '<br />'
           + 'Content-Encoding=' + TheRequest.ContentEncoding + '<br />'
           + 'User-Agent=' + TheRequest.UserAgent + '<br />'
           + 'File-Count=' + IntToStr(TheRequest.Files.Count) + '<br />' + '<br />';

  result := '<html><head /><body>'
          + '<h2>Request.Files</h2>';
    result := result + '<p>' + HoldStr + '</p>';
  result := result + '</body></html>';
end;

响应显示

请求.文件

内容类型=多部分/表单数据;边界=-------------291141107813480 内容编码= 用户代理=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 文件数=0

为什么文件计数为 0?

【问题讨论】:

    标签: html httprequest datasnap input-type-file


    【解决方案1】:

    您必须将 ReqMulti{for Multi-part Requests} 添加到您的 uses 子句中。未包含在我使用的示例中。

    【讨论】:

      猜你喜欢
      • 2016-07-12
      • 1970-01-01
      • 2012-08-02
      • 2015-03-31
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 2020-05-03
      相关资源
      最近更新 更多