PHP FTP - Datei hochladen

Clocker 2800+

Lt. Commander
Registriert
Apr. 2007
Beiträge
1.409
Hi.

wie kann ich per STOR-Befehl eine Datei auf einen FTP-Server hochladen ?


also ich brauche nur den Befehl, wie der genutzt wird, das einloggen, etc hab ich schon.

Der Grund ist, dass auf diesem FTP Server die php-Funktion ftp_put, o.ä. nicht erlaubt ist.
Funktion ist deaktiviert auf dem FTP Server.

Das einzige, mit was man Dateien hochladen kann, wäre die STOR Funktion.

Aber wie setzt man die ein, da hab ich nämlich keine Ahnung, da ich immer den ftp_put Befehl genommen habe.

/edit:
Hier mal mein bisheriger Codeausschnitt.
PHP:
function stor($localPath,$remotePath)
	{
		if($this->pasv())
		{
			$this->sock_write("STOR $remotePath");
			if($this->is_ok())
			{
				$fp = fopen($localPath,"rb");
				while(!feof($fp))
				{
					$s = fread($fp,4096);
					fwrite($this->data_sock,$s);
				}
			}
		}
	}
Aber da kommt immer eine Fehlermeldung mit dem $this.........

Ich denke aber auch nicht, dass der Code überhaupt funktionieren soll. Wo sind die "richtigen" php-Befehle (Aufrufe) für den FTP ?
 
Zuletzt bearbeitet:
wenn ich mit filezilla dateien hochlade, kommen dabei folgende befehle:
Code:
13:57:08	Status:	Starting upload of <lokaler pfad>
13:57:08	Command:	PASV
13:57:08	Response:	227 Entering Passive Mode (<ip>,225,209)
13:57:08	Command:	STOR <dateiname>
13:57:08	Response:	150 Accepted data connection
13:57:08	Response:	226-81887 Kbytes used (3%) - authorized: 2097152 Kb
13:57:08	Response:	226-File successfully transferred
13:57:08	Response:	226 0.006 seconds (measured here), 13.42 Kbytes per second
13:57:08	Status:	File transfer successful
13:57:08	Status:	Retrieving directory listing...
13:57:08	Command:	PASV
13:57:08	Response:	227 Entering Passive Mode (<ip>,16,106)
13:57:08	Command:	LIST -a
13:57:08	Response:	150 Accepted data connection
13:57:08	Response:	226-ASCII
13:57:08	Response:	226-Options: -a -l 
13:57:08	Response:	226 3 matches total
13:57:08	Status:	Directory listing successful
dabei hab ich die desktop.ini (78 byte groß) aus einem verzeichnis hochgeladen:
Code:
[.ShellClassInfo]
IconFile=%SystemRoot%\system32\SHELL32.dll
IconIndex=140
 
Hm, soweit ich das FTP-Protokol im Kopf habe erwartet STOR ja auch nicht den gesamten Pfad, sondern lediglich den Dateinamen. Du musst vorher in das entsprechende Verzeichnis wechseln. Schau dir doch mal die RFC zu FTP an.
 
Mal so eine alternative in den Raum geworfen:

Lässt sich das ganze nicht einfach mit SCP / SSH lösen?

ssh2_scp_send() & ssh2_connect() sind hier u. a. Stichpunkte...
 
@excalibur1976:
Leider weiß ich gar nicht, wovon du sprichst.

Sind das FTP Befehle ?

Der Zugriff ist aber nur über FTP möglich, und nur der STOR Befehl ist erlaubt, um Dateien zum FTP Server hochzuladen.
 
Nein, es ist nur der Zugriff per FTP erlaubt.

Ich hab vorhin nochmals nachgefragt.
 
Zurück
Oben