kostenloser Webspace werbefrei: lima-city


ftp per php

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    your-destiny

    your-destiny hat kostenlosen Webspace.

    Hallo zusammen,
    ich möchte einen fileupload auf meiner Webseite anbieten und die hochgeladene Datei per FTP als Backup auf einen anderen Server übertragen.

    hier mein code:
    <?php
    require("config.inc");
    global $passwort1;
    global $dbname1;
    global $dbuser1;
    global $host;
    global $url;
    global $ftphost;
    global $ftpuser;
    global $ftppass;
    global $ftpdir;
    $url = "index.php";
    $filename = "1.jpeg";
    $uploaddir = 'File/';
    $userid = "4";
    
    if($_POST['upload'])
    {
    	$verbindung = mysql_connect($host, $dbuser1 , $passwort1)
    	or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    	mysql_select_db($dbname1) or die ("Datenbank konnte nicht ausgewählt werden");
    	
    	$filename = basename($_FILES['datei']['name']);
    	$lenge =  strrpos ( $filename ,  '.'  );
    	$seartch = substr( $filename , $lenge ) ;
    	
    	$filename = str_replace("$seartch" , "" , $filename);
    	
    	$idcheck = mysql_query("SELECT * FROM `fileupload` WHERE `id` LIKE 1");
    	while($i = mysql_fetch_array($idcheck))
    	{
    		$id = $i['filename'];
    	}
    	$id++;
    	$uploadfile = $uploaddir . $id . $seartch;
    
    	if (move_uploaded_file($_FILES['datei']['tmp_name'], $uploadfile))
    	{
    		$conn_id = ftp_connect($ftphost); 
    		ftp_login ($conn_id, $ftpuser, $ftppass); 
    		
    		$file = $local; 
    		ftp_put($conn_id , $ftpdir . $id . $seartch , $uploadfile , FTP_BINARY);
    
    		echo $ftpdir . $id . $seartch . "<br />" . $uploadfile;
    
    		ftp_quit($conn_id);  
    		mysql_query("UPDATE `fileupload` SET `filename` = '$id' WHERE `id` LIKE 1");
    		mysql_query("INSERT INTO `fileupload` (`id` , `filename` , `endung` , `user` ) VALUES ('$id' , '$filename' , '$seartch' , '$userid') ");
    		echo "Upload beendet<br /><br />";
    		print_r($_FILES);
    	}
    	else
    	{
    		echo "fehlgeschlagen";
    	}
    	mysql_close($verbindung);
    }
    else
    {
    	echo"
    	<html>
    	<body>
    	<form action='$url' method='post' enctype='multipart/form-data'>
    	<input type='file' name='datei'><br>
    	<input type='submit' name='upload' value='Hochladen'>
    	</form>";
    }
    
    ?>


    Der Upload auf Server A funktioniert einwandfrei. Jedoch das übertragen der Datei zu Server B macht probleme. Es erscheint die Fehlermeldung
    Warning: ftp_put(): Kann keine Datenverbindung zu Port XXXX aufbauen.: Connection refused in /www/htdocs/w011e1cb/Froehlich/u/index.php on line 43

    also bei ftp_put($conn_id , $ftpdir . $id . $seartch , $uploadfile , FTP_BINARY);
    Die Portnummer wechselt dauernd daher XXXX .

    Ich hoffe es kann mir einer helfen

    Gruß
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Bei dem Aktiven Modust sendet der Client auf Port 21. Die Datenübertragung erfolgt aber über den Port 20. Der passive Modus wird eingesetzt wenn der Client nicht direkt ansprechbar ist. Z.B. durch einen Router. Bei diesem Modus wird ein Port über 1023 vom Client übermitteltet und dann die Antwort des Servers genutzt.
    Server A benutzt vieleicht keinen Router und Server B benutzt einen. Eine Problemlösung habe ich aber leider auch nicht :( .
  4. Autor dieses Themas

    your-destiny

    your-destiny hat kostenlosen Webspace.

    Schon mahl danke für deine Antwort.
    inzwischen habe ich herausgefunden, dass einige Dateiformate (.php , .js , .inc etc.) korrekt übertragen werden. Jedoch keine Bilddateien. Nagut die Datei wird erstellt (Name und typ korrekt) jedoch immer mit einer Größe von 0 Bytes.

    Auch wenn ich den Modus in FTP_ASCII setze das gleiche.

    Gruß
  5. Bei mir hatt FTP_BINARY für Dateien wie z.B. Bilder und FTP_ASCII für Text immer funktioniert. Aber es könnte ja eine Serverseitige Sperre gegen größere Dateien vorliegen, wenn du es mit einem sehr großen/unkomprimierten Bild versucht hast.
  6. werden ZIP-Container korrekt übertragen?
    Wenn ja, dann ZIP doch einfach Deine Deine Dateien und übertrage sie dann mit FTP...
  7. Autor dieses Themas

    your-destiny

    your-destiny hat kostenlosen Webspace.

    Halo,
    Nein ich habe es mit einer 26 kb datei versucht - auf server b kommen 0 an.
    Nein per zip wirt es nicht funktionieren, da es von lima server zu einen hauseigenen gehen soll. Oder erlaupt lima seit neuestem zip?

    Gruß
  8. Muss Dein "Server A" denn überhaupt die Daten senden?
    Kann Dein "Server B" die Daten nicht aktiv holen?

    Beitrag zuletzt geändert: 18.8.2014 11:45:35 von dunkeltuten
  9. Autor dieses Themas

    your-destiny

    your-destiny hat kostenlosen Webspace.

    Die datei soll bei jedem upload direkt übertragen werden.
    Natürlich kann auch server b die datei holen, jedoch ist dies deutlich zeitaufwendiger. Und dis müssteman mit headern machen. Sprich jeder kann je nach dateigröße die 2. Url sehen. Somit wirt auch eine lücke geöffnet.

    Gruß
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!