ej trode det var ren kode men den bruger også webbrowseren, men det gør nu ingenting.
Sådan her virker det:
function HTTPEncode(const AStr: string): string;
const
NoConversion = ['A'..'Z', 'a'..'z', '*', '@', '.', '_', '-'];
var
Sp, Rp: PChar;
begin
SetLength(Result, Length(AStr) * 3);
Sp := PChar(AStr);
Rp := PChar(Result);
while Sp^ <> #0 do
begin
if Sp^ in NoConversion then
Rp^ := Sp^
else if Sp^ = ' ' then
Rp^ := '+'
else
begin
FormatBuf(Rp^, 3, '%%%.2x', 6, [Ord(Sp^)]);
Inc(Rp, 2);
end;
Inc(Rp);
Inc(Sp);
end;
SetLength(Result, Rp - PChar(Result));
end;
var
i: Integer;
EncodedStr: string;
Header: OleVariant;
Post: OleVariant;
begin
//Forms som skal udfyldes
EncodedStr := 'Filename=' + HTTPEncode('C:\Fil.txt');
Post := VarArrayCreate([0, Length(EncodedStr) - 1], varByte);
for I := 1 to Length(EncodedStr) do
Post[I - 1] := Ord(EncodedStr[I]);
Header := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
WebBrowser1.Navigate('
www.dinserver.dk/post.asp', EmptyParam, EmptyParam, Post, Header);
end;
Det eneste som mangler er noget error checking altså om det blev uploaded fint. Jeg brugte hvis nok OnTitleChange event i webbrowseren, så du kan bare lave så dit server script fx sætter title til "Succes" så kan du se det i OnTitleChange.
dkn