FTP Upload; Fehlermeldung:Warning: ftp_put() expects parameter 1 to be resource, bool

Status
Nicht offen für weitere Antworten.

Claas M

Erfahrenes Mitglied
Hi Leute

PHP:
<?php
$ftp_server = "meinserver";
$ftp_benutzername = "meinname";
$ftp_passwort = "meinpw";
$connection_id = ftp_connect("$ftp_server");
$zieldatei = $_POST["upload"];//wird aus Formular übegeben
$login_result = ftp_login($connection_id, "$ftp_benutzername", "$ftp_passwort");//klappt
$bla = ftp_chdir($connection_id,'/html/programme/');//liegt hier der Fehler?

if ((!$connection_id) || (!$login_result)) { 
        echo "Ftp-Verbindung nicht hergestellt!";
        echo "Verbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich"; 
        die; 
    } else {
        echo "Verbunden mit $ftp_server als Benutzer $ftp_user_name";
    }

$upload = ftp_put ($bla, "$zieldatei", "$zieldatei", FTP_BINARY);
if($upload != 1)
	{
		echo "Die Datei $zieldatei konne nicht auf den Server Übertragen werden." ;
	}
	else
	{
		echo "Die Datei $zieldatei ist erfolgreich auf den Server Übertragen worden." ;
	}

ftp_quit($connection_id);
?>

Ja wie gesagt habe ich vor, dass die Datei, die mittels post übertragen wird, Upgeloadet wird aber mir fällt ein, dass es ja nur ein string ist, den ich übergebe, und keine Datei.

Ist da der Hund begraben?
Ich ahne Böses ;)

Fehlermeldung:Warning: ftp_put() expects parameter 1 to be resource, boolean given in /home/www/web55/html/ftp.php

HTML:
<table>
	<tr>
		<td>
			<form action='ftp.php' method='post'>
				<input name='upload' type='file' class='profil' value="">
				<input type='submit' value='Mittels FTP Hochladen' class='profil'>
			</form>
		</td>
	</tr>
</table>

Ich danke Euch :)
 
Re: FTP Upload; Fehlermeldung:Warning: ftp_put() expects parameter 1 to be resource,

Die Fehlerausgabe ist doch recht eindeutig, oder? Der erste Paramenter, den du an ftp_put übergeben musst, ist die Resource, also den Rückgabewert von ftp_connect(), und kein Boolean.
 
Re: FTP Upload; Fehlermeldung:Warning: ftp_put() expects parameter 1 to be resource,

Aha.

Ja gut aber ich verstehe das Prinzip überhaut nciht.
Also ich kann den upload mittels mutipart/ forma data machen aberdas ist dann ja kein FTP mehr.

Und php.net hilft auch nicht gerade weiter.
 
Re: FTP Upload; Fehlermeldung:Warning: ftp_put() expects parameter 1 to be resource,

Mit den FTP-Funktionen kannst du logischerweise nur Dateien auf einen FTP-Server laden, die auf dem Server vorhanden sind. Wie die Dateien vom User zum Server kommen, ist eine ganz andere Sache.
 
Re: FTP Upload; Fehlermeldung:Warning: ftp_put() expects parameter 1 to be resource,

An Oliver:
Wärest Du dann mal so freundlcih das aufzuschreiben? ;)
Ich danke Dir

MfG
 
Re: FTP Upload; Fehlermeldung:Warning: ftp_put() expects parameter 1 to be resource,

Hallo,

per Multipart hochgeladene Dateien landen je nach Konfiguration des Servers zunächst in einem temporären Verzeichnis (meistens /temp). Diese Dateien erhalten dort einen eindeutigen temporären Filenamen, den du mittels PHP über das Array $_FILES ansprechen und weiterverwenden kannst:
$_FILES['tmp_name'] entspricht dem temporären Dateinamen
$_FILES['name'] ist der Quelldateiname (also vom User)

Nun mußt du diese Datei nach dem Upload an die gewünschte Stelle deines Webserver kopieren. Dies geschieht entweder mittels move_uploaded_files() oder copy(). Hierzu bitte auf folgender Seite nachschauen:
http://selfphp.info/funktionsreferenz/dateisystem_funktionen/move_uploaded_file.php

Du könntest zwar die temporäre Datei auch mit FTP an das gewünschte Ziel verschieben (mußt aber auch dort als Quelldatei $_FILES['tmp_name'] verwenden), aber das ist in meinen Augen überflüssig.

Wichtig:
Du mußt im HTML-Form-Tag noch enctype="multipart/form-data" angeben, da das Formular ansonsten kein File versendet ;-).

Viele Grüße
Bloddy
 
Zuletzt bearbeitet:
Re: FTP Upload; Fehlermeldung:Warning: ftp_put() expects parameter 1 to be resource,

Danke Dir.

Der Upload mittels Mulitpart usw klappe ja aber das Problemist, dass ich die Dateien neicht mit meinem FTP-Programm runterladen konnte.
Dies war der Fall bei Bildern. Wenn ich die Bilder aber im Webbrowser habe anzeigen lassen, klappte es alles einwandfrei.

Wenn ich nun aber eine 20 MB große Datei uppen will geht dies nicht.
Deshalb hatte ich vor das mit FTP zu machen.
PHP:
<?php
if(isset($upload))
	{
		move_uploaded_file($_FILES['upload']['tmp_name'], 'programme/'.$_FILES['upload']['name']);
	};
?>
<table>
	<tr>
		<td>
			<form enctype='multipart/form-data' action='<?php echo $_PHPSELF; ?>' method='post'>
				<input name='upload' type='file' class='profil'>
				<input type='submit' value='Hochladen' class='profil'>
			</form>
		</td>
	</tr>
</table>

So damit kann ich nun kleinere Dateien uppen aber keine größeren.
Wie kann ich nun die Datei mittels FTP verchieben? Oder ist es alles das Gleiche?

Danke
 
Es gibt da verschiedene Beschränkungen bei PHP, zu ändern in der php.ini. Max_post_data und upload_file_size dürften dein Problem lindern, größere Dateien per Formupload auf den Server zu laden.
 
Re: FTP Upload; Fehlermeldung:Warning: ftp_put() expects parameter 1 to be resource,

Wenn du Dateien per FTP vom User auf deinen Server laden willst, dann benutz einen FTP-Client und keinen Browser...
 
Re: FTP Upload; Fehlermeldung:Warning: ftp_put() expects parameter 1 to be resource,

Oliver Gringel hat gesagt.:
Wenn du Dateien per FTP vom User auf deinen Server laden willst, dann benutz einen FTP-Client und keinen Browser...

Soll ich meine FTP-Daten wildfremden Menschen in die Hand geben?
Dann fang mal an ;)
 
Status
Nicht offen für weitere Antworten.
Zurück