program testput; (* Program to test ftp uploading *) {$INCLUDE curltest.inc} uses curlobj, sysutils; var MyCurl:tCurl; ModeStr, RemoteFile:string; i:integer; begin if ( ParamCount in [3..4] ) then begin RemoteFile:=ExtractFileName(ParamStr(3)); if ( ParamCount = 4 ) then begin // Check for valid 3 digit octal-mode ... ModeStr:=ParamStr(4); for i:=1 to length(ModeStr) do if not ( ModeStr[i] in ['0'..'7']) then begin ModeStr:=''; Break; end; while ( ModeStr <> '' ) and ( ModeStr[1] = '0' ) do delete(ModeStr,1,1); if ( Length(ModeStr) <> 3 ) then ModeStr:=''; if ( ModeStr <> '' ) then ModeStr:='SITE CHMOD ' + ModeStr + ' ' + RemoteFile else begin WriteLn('WARNING: invalid octal-mode argument: ', ParamStr(4)); WriteLn('Mode must be 3 digit octal.'); end end else ModeStr:=''; MyCurl:=tCurl.Create(nil); MyCurl.Verbose:=True; MyCurl.Upload:=True; MyCurl.UserPwd:=ParamStr(1); MyCurl.URL:=ParamStr(2) + '/' + RemoteFile; // -- The url MUST have a filename! MyCurl.InputFile:=ParamStr(3); if ( ModeStr <> '' ) then MyCurl.PostQuote.Add(ModeStr); if not MyCurl.Perform then WriteLn(MyCurl.ErrorString); MyCurl.Free; end else begin WriteLn('Upload a file using ftp...'); WriteLn('testput <username>[:password] <remote-site>[/directory] <local-file> [octal-mode]'); WriteLn('If octal-mode is specified, permissions for the file will be set after upload.'); end; end.