Lisez la documentation de PHP.
Votre code PHP utilise $_FILES
, qui attend le client d'afficher un formulaire en ligne HTML au format MIME multipart/form-data
:
Handling file uploads>POST method uploads
PHP est capable de recevoir des fichiers de toute RFC- 1867 navigateur compatible.
RFC 1867 Form-based File Upload in HTML
Mais ce format n'est pas ce que votre demande est en fait l'affichage, cependant. Il affiche simplement le contenu du fichier brut tel quel sans métadonnées MIME pour décrire le fichier. C'est pourquoi votre code PHP ne fonctionne pas.
Pour poster un multipart/form-data
HTML formulaire en ligne à l'aide TIdHTTP.Post()
, vous devez utiliser la classe TIdMultipartFormDataStream
, par exemple:
uses
..., IdHTTP, IdMultipartFormDataStream;
procedure TForm1.Button1Click(Sender: TObject);
var
PostData: TIdMultipartFormDataStream;
begin
PostData := TIdMultipartFormDataStream.Create;
try
PostData.AddFile('file', 'C:\Users\Someone\Desktop\log.txt');
idhttp1.Post('http://127.0.0.1/GET2.php', PostData)
finally
PostData.Free;
end;
end;
Sinon, PHP supporte aussi les requêtes HTTP PUT
pour le téléchargement de fichiers:
Handling file uploads>PUT method support
procedure TForm1.Button1Click(Sender: TObject);
var
FS: TFileStream;
begin
FS := TFileStream.Create('C:\Users\Someone\Desktop\log.txt', fmOpenRead or fmShareDenyWrite);
try
idhttp1.Put('http://127.0.0.1/log.txt', FS);
finally
FS.Free;
end;
end;
<?php
/* PUT data comes in on the stdin stream */
$putdata = fopen("php://input", "r");
/* Open a file for writing */
$fp = fopen("log.txt", "w");
/* Read the data 1 KB at a time
and write to the file */
while ($data = fread($putdata, 1024))
fwrite($fp, $data);
/* Close the streams */
fclose($fp);
fclose($putdata);
?>
des thats répond à ma question, Résolu. – Someone
Si c'est le cas, veuillez marquer la réponse comme acceptée. –
@David Heffernan: Je n'avais pas le privilège d'accepter des réponses à l'époque !! Monsieur, avez-vous une mauvaise journée? vous avez voté tout ce que j'ai posté dans stackoverflow et m'a donné des exécutions de style politique. – Someone