Tengo un script PHP simple en mi servidor web que necesito para cargar un archivo usando HTTP POST, que estoy haciendo en Delphi.Http Publicar con indy
Aquí está mi código con Indy pero parante no funcionará y no puedo entender lo que no estoy haciendo bien. ¿Cómo puedo ver lo que envío en el servidor? ¿Existe tal herramienta?
procedure TForm1.btn1Click(Sender: TObject);
var
fname : string;
MS,dump : TMemoryStream;
http : TIdHTTP;
const
CRLF = #13#10;
begin
if PromptForFileName(fname,'','','','',false) then
begin
MS := TMemoryStream.Create();
MS.LoadFromFile(fname);
dump := TMemoryStream.Create();
http := TIdHTTP.Create();
http.Request.ContentType:='multipart/form-data;boundary =-----------------------------7cf87224d2020a';
fname := CRLF + '-----------------------------7cf87224d2020a' + CRLF + 'Content-Disposition: form-data; name=\"uploadedfile\";filename=\"test.png"' + CRLF;
dump.Write(fname[1],Length(fname));
dump.Write(MS.Memory^,MS.Size);
fname := CRLF + '-----------------------------7cf87224d2020a--' + CRLF;
dump.Write(fname[1],Length(fname));
ShowMessage(IntToStr(dump.Size));
MS.Clear;
try
http.Request.Method := 'POST';
http.Post('http://posttestserver.com/post.php',dump,MS);
ShowMessage(PAnsiChar(MS.Memory));
ShowMessage(IntToStr(http.ResponseCode));
except
ShowMessage('Could not bind socket');
end;
end;
end;
"No funciona" es la frase menos útil posible al depurar algo. ¿Qué no funciona? ¿Qué hace mal? –
@MasonWheeler si supiera la respuesta probablemente no estaba haciendo esta pregunta. No sube al servidor web, ese es el problema, supongo que el encabezado del post está mal formado, pero no sé qué estoy haciendo mal. – opc0de
por qué es MS.Clear; llamado antes de http.Post (URL, MS)? – ComputerSaysNo