J'avais un code qui fonctionnait bien en appelant un fichier php de mon site pour uploader un fichier.
Depuis quelques temps, cela ne marche pas car je pense que mon hébergeur à ajouter le ModSecurity.

J'obtiens cela en log sur mon site :
ModSecurity: Access denied with code 406 (phase 2). Operator EQ matched 0 at REQUEST_HEADERS_NAMES. [file "remote server"] [line "-1"] [id "600004"] [msg "Malware.Expert - Unauthenticated upload"]
Et voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  HTTP := TIdHTTP.Create;
  HTTP.Request.UserAgent := 'Mozilla/5.0 (compatible;MyApp)';
  Stream := TStringStream.Create;
  Params := TIdMultipartFormDataStream.Create;
  Params.AddFile('toto', Fn, 'application/octet-stream');  // MIME
  try
    HTTP.Post(Website+'/support/upload.php', Params, Stream);  // là, cela génére un code erreur 406
    result := true;
  except
    on E: Exception do
    begin
      Memo.Lines.Insert(0, 'ERROR: (P) ' + E.Message);
    end;
  end;
  Params.Free;
  Stream.Clear;
  Stream.Free;
  HTTP.Free;