从其它平台迁移而来


核心代码

  • OnCheckRequest事件中的代码:
1
2
3
with TRtcDataServer(Sender) do
  if Request.FilePath.Equal(0, 'UPLOAD') then
    Accept;
  • OnDataReceived事件中的代码:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
var
  fname: string;
  cnt: integer;
begin
  with TRtcDataServer(Sender) do
  begin
    if Request.Method = 'GET' then
    begin
      Write('<html><body><form enctype="multipart/form-data" method="post">');
      Write('Type some text, if you like:<br>');
      Write('<input type="text" name="textline" size="30"><br>');
      Write('Please specify a single file to upload:<br>');
      Write('<input type="file" name="onefile" size="40"><br>');
      Write('Please specify one or more files to upload:<br>');
      Write('<input type="file" name="morefiles" size="40" multiple><br>');
      Write('<input type="submit" value="Send">');
      Write('</form></body></html>');
    end
    else
    begin
      Request.Params.AddText(Read);
      if Request.Complete then
      begin
        Write('<html><body>');
        if Request.Params['textline'] <> '' then
          Write('You typed this text: <br> ' + Request.Params['textline'] + '<br><br>');
        // Uploading a single file ...
        if Request.Params.IsFile('onefile') then
        begin
          if not DirectoryExists(eUploadFolder.Text) then
            CreateDir(eUploadFolder.Text);
          fname := Request.Params['onefile'];
          if Request.Params.GetFile('onefile', eUploadFolder.Text + '\' +
            ExtractFileName(fname)) then
            Write('File "' + fname + '" was uploaded using the "single file" field.<br>')
          else
            Write('Error receiving File "' + fname + '".<br>');
        end
        else
          Write('Single file was NOT uploaded (OneFile parameter empty) <br>.');
        // Uploading one or more files ...
        if Request.Params.IsFile('morefiles') then
        begin
          if not DirectoryExists(eUploadFolder.Text) then
            CreateDir(eUploadFolder.Text);
          for cnt := 0 to Request.Params.ElementCount['morefiles'] - 1 do
          begin
            fname := Request.Params.Element['morefiles', cnt];
            if Request.Params.GetFile('morefiles', eUploadFolder.Text + '\' +
              ExtractFileName(fname), cnt) then
              Write('File "' + fname +
                '" was uploaded using the "more files" field at [' + IntToStr(cnt)
                + '].<br>')
            else
              Write('Error receiving File "' + fname + '".<br>');
          end;
        end
        else
          Write('Multiple files were NOT uploaded (MoreFiles parameter empty).');
        Write('</body></html>');
      end;
    end;
  end;
end;