Erlaubt der Server denn das Erstellen von Dateien auf diesem Wege? Wahrscheinlich nicht, da die Methode PUT ein potenzielles Sicherheitsloch darstellt. Entweder nutzt du POST + PHP-Skripte oder
FTP
P.S.: Statt erst Pfad und dann Stream zu belegen, kann man auch schreiben:
stream:= TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
(Polymorphismus)