Darky^: FTP Datei erzeugen ohne lokale Datei

Beitrag lesen

Hallo Felix,

FTP steht für "File Transfer Protocol", zu Deutsch "Datei Transfer Protokoll"

aber bitte ohne die Leerzeichen ...

Selbstverständlich ist damit gemeint, dass auf dem Zielsystem diese Datei im Dateisystem angelegt (oder modifiziert) wird.

Da sind wir uns einig.

Ich habe den starken Verdacht, dass Du den Zusammenhang von FTP und dynamisch erzeugten (z.B. aus einer Datenbank generierten) "Seite" (sprich HTML-Dokument) noch nicht ganz verstanden hast.

Ich unterstelle dem OP, dass er den Zusammenhang sehr wohl verstanden hat. Ich verstehe ihn nämlich so, dass er mit PHP eine Datei erzeugen will, das aber direkt per FTP auf dem Zielsystem.

Das ist bei den FTP-Funktionen von PHP allerdings nicht vorgesehen.
Falls allow_url_fopen gesetzt ist, könnte er allerdings auf die FTP-Funktionen verzichten und direkt mit

$fh = fopen("ftp://user:pass@host/file", "w");

die Datei erzeugen und schreiben. Andernfalls muss man vermutlich selbst "FTP sprechen" - zumindest die Clientrolle.

So long,
Martin

Hi!

Ich habs nun einmal so probiert, jedoch klappt es nicht ganz:

  
<?php  
  
$server=$_POST["server"];  
$user=$_POST["user"];  
$password=$_POST["password"];  
$directory=$_POST["directory"];  
  
$connect_id=ftp_connect($server);  
mysql_connect("localhost","root","myroot");  
mysql_select_db("test");  
  
if(($login_result=ftp_login($connect_id, $user, $password)) !== FALSE){  
    echo 'Verbindung konnte hergestellt werden<br>';  
}  
else  
{  
    echo 'Fehler beim Verbinden (Logindaten falsch?).<br>';  
}  
  
if (ftp_mkdir ($connect_id, $directory) !== FALSE)  
{  
  echo 'Anlegen eines neuen Verzeichnisses war erfolgreich!<br>';  
}  
else  
{  
  echo 'Anlegen eines neuen Verzeichnisses war NICHT erfolgreich!<br>';  
}  
  
if(($fh = fopen("ftp://"+$user+":"+$password+"@"+$server+"/"+$directory+"/test.txt", "w")) !== FALSE){  
    echo 'Datei erstellt<br>';  
}  
else  
{  
    echo 'Fehler beim Erstellen der Datei. <br>';  
}  
  
?>  
  

Bekomm zwar Datei erstellt zurück, leider wird trotzdem keine angelegt.