Auto-FTP-Forwarding für Dateien?

Moderator: worgan

Benutzeravatar
Lateiner
Unverwundbar
Unverwundbar
Beiträge: 1015
Registriert: 22. Mär 2009 15:29
Eigener Benutzer Titel: Pecuniam Non Olet
Kontaktdaten:

Auto-FTP-Forwarding für Dateien?

Beitrag von Lateiner »

Hallo!
Gibt es ein PHP-Skript, was es mir ermöglicht, Dateien (nothfalls auch mit Übergabe des Namens) per FTP an einen anderen Server zu schicken und auf dem jetzigen zu löschen??? Bin nicht so firm in PHP...

Dankeschöhn,
Lateiner
Liebe Grüße,
L A T E I N E R

Benutzeravatar
m.planck
Adliger
Adliger
Beiträge: 299
Registriert: 18. Okt 2008 09:25
Wohnort: RLP

Re: Auto-FTP-Forwarding für Dateien?

Beitrag von m.planck »

Könntest du das etwas genauer ausführen? Sind die Dateien lokal auf deinem PC oder auf dem Server, wo das PHP-Script ausgeführt wird?

Gruß
m.planck

Benutzeravatar
Lateiner
Unverwundbar
Unverwundbar
Beiträge: 1015
Registriert: 22. Mär 2009 15:29
Eigener Benutzer Titel: Pecuniam Non Olet
Kontaktdaten:

Re: Auto-FTP-Forwarding für Dateien?

Beitrag von Lateiner »

Nee, ich lad die Datei auf Webhost 1 mittels PHP-Skripts hoch. In diesem ist ein kleiner Teil, welcher die Datei nach dem Speichern per FTP an einen anderen Webhost (Webhost 2) versendet.
Hintergrund: Auf dem einen Webhost (Nummer 2) habe ich kein PHP, will aber ne Briefkastenlösung für Kumpels haben, um mit fürn E-Mail-Anhang zu große Dateien mir zukommen zu lassen. Aufm andern hab ich nur 500 MB, dafür aber keine Werbung und PHP, schneller Server und viel Freiraum...
Um die Dateien auszulesen hab ich fire ftp...

Dankeschöhn,
Lateiner
Liebe Grüße,
L A T E I N E R

Benutzeravatar
m.planck
Adliger
Adliger
Beiträge: 299
Registriert: 18. Okt 2008 09:25
Wohnort: RLP

Re: Auto-FTP-Forwarding für Dateien?

Beitrag von m.planck »

Ich versuch mal morgen was zusammenzufitscheln, wenn niemand schneller ist ;)

Gruß
m.planck

Benutzeravatar
jürhan
Poster Gott
Poster Gott
Beiträge: 823
Registriert: 27. Okt 2008 12:00
Eigener Benutzer Titel: Techniker
Wohnort: Berlin
Kontaktdaten:

Re: Auto-FTP-Forwarding für Dateien?

Beitrag von jürhan »

Ich rate ansonstren zu einem anderen Freehoster. Ohne Jetzt Werbung zu machen, aber die Firma bplaced.net bietet:

-2 GB Webspace
-PHp
-MySQL
-kein Traffic limit
-keine Werbung
- schnelle Server
Gruß Jürhan
Ich picke, du pickst wir picken auf http://www.koksa.org

Benutzeravatar
m.planck
Adliger
Adliger
Beiträge: 299
Registriert: 18. Okt 2008 09:25
Wohnort: RLP

Re: Auto-FTP-Forwarding für Dateien?

Beitrag von m.planck »

Code: Alles auswählen

// FTP-Server definieren
$ftp_server = "sub.domain.de";

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server,"21");     // hier kann auch ein anderer Port angegeben werden, falls nötig

// Login mit Benutzername und Passwort
$ftp_user_name = "user";
$ftp_user_pass = "pass";
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) {
        echo "FTP-Verbindung ist fehlgeschlagen!<br>";
        echo "Verbindungsaufbau zu $ftp_server mit Benutzername $ftp_user_name versucht.<br>";
        exit;
    } else {
        echo "Verbunden zu $ftp_server mit Benutzername $ftp_user_name<br>";
    }
// Quelldatei
$source_file = "pfad/zur/datei";         // Hier Pfad und Dateiname angeben.
if (file_exists($source_file)) {
        echo "<b>" . $source_file . "</b> existiert.<br>";
    } else {
        echo "Datei nicht gefunden!<br>";
    }

// Zieldatei
$destination_file = '/upload/verzeichnis/dateiname';     //hier das Uploadverzeichnis UND den Namen der Datei angeben.

// Datei hochladen
ftp_pasv($conn_id, true);                          // Ich musste den Passive Mode benutzen damit der Transfer funktionierte.
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_ASCII);        // Bei Textdateien FTP_ASCII, bei andreren Dateien FTP_BINARY, korrigiert mich, wenn ich falsch liege ;)

// Upload überprüfen
if (!$upload) {
        echo "FTP-Upload ist fehlgeschlagen!<br>";
    } else {
        echo "Datei $source_file auf Server $ftp_server als $destination_file hochgeladen<br>";
    }

// Verbindung schließen
ftp_close($conn_id);
?>
Quelle: PHP.net von mir verändert.

Hier gilt, wie immer, dass man die Variablen auch über ein HTML-Formular befüllen kann, um die Benutzerfreundlichkeit zu steigern. Damit das ganze funktioniert, muss in der php.ini das ftpmodul (ftp.so) geladen sein.

Gruß
m.planck

Benutzeravatar
Lateiner
Unverwundbar
Unverwundbar
Beiträge: 1015
Registriert: 22. Mär 2009 15:29
Eigener Benutzer Titel: Pecuniam Non Olet
Kontaktdaten:

Re: Auto-FTP-Forwarding für Dateien?

Beitrag von Lateiner »

@Jürhan: Da bin ich auch, doch man muss sich alle 3 Monate anmelden... soo oft guck ich dann doch nicht auf mein eMail-Konto.
UND, mein lieber Jürhan, schnell ist was anderes. Joomla! benötigt trotz 16.000-Verbindung 2 (!) Minuten!!!
Vom Transferspeed will ich gar net erst anfangen (Up ftp://: 50 MB/S!!!!)
Lateiner
Liebe Grüße,
L A T E I N E R

Benutzeravatar
Lateiner
Unverwundbar
Unverwundbar
Beiträge: 1015
Registriert: 22. Mär 2009 15:29
Eigener Benutzer Titel: Pecuniam Non Olet
Kontaktdaten:

Re: Auto-FTP-Forwarding für Dateien?

Beitrag von Lateiner »

@ m.planck:
Dankeschön! Werde es mal testen!
Liebe Grüße,
L A T E I N E R

Benutzeravatar
Lateiner
Unverwundbar
Unverwundbar
Beiträge: 1015
Registriert: 22. Mär 2009 15:29
Eigener Benutzer Titel: Pecuniam Non Olet
Kontaktdaten:

Re: Auto-FTP-Forwarding für Dateien?

Beitrag von Lateiner »

Mist! So schön das Skript von m.planck auch ist, es bringt mich nicht weiter! Ich verwende ein kleines Skript:

Code: Alles auswählen

<!--
/////////////////////////////////////////////////////////////////////
//                          **                                     //
//                          **     Copyright (c) 2008 by Arne      //
//                          **      http://www.arne-home.de        //
//   v1.2 vom 30.11.2008    **       Don't remove any (c)          //
//                          **   Dieser Eintrag darf nicht         //
//                          **       entfernt werden.              //
//                          **                                     //
//                          ** BITTE Lesen sie die lies_mich.html! //
//                          **                                     //
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
// Der Copyright-Hinweis am Beginn des Quellcodes des Scripts muss //
// unver‰ndert bleiben, der Copyright-Hinweis und Link zu          //
// www.arne-home.de bei der Ausgabe des Scripts muss auch erhalten //
// bleiben, und darf in keiner weise unkentlich gemacht werden !   //
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
/////////////////////////////////////////////////////////////////////
-->
<?php
require('config.php');
$mb = $b_max/1048576;
$mb = round($mb, 2);
@chmod(''.$_SERVER[DOCUMENT_ROOT].'/'.$pfad.'/.', $up_chmod);

if($upw=="1"){
if(isset($_POST['sendfiles'])){
if($_POST['pwd'] != $pw){
	include("header.php");
	echo "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
	<tr><td align=\"center\">
	<span class=\"grossschrift\">
	<b>Uploadcenter</b>
	</span>
	</td></tr>
	<tr><td width=\"100%\" align=\"center\">
	<span class=\"grossschrift\">
	<br>
	Das Passwort fehlt oder ist falsch!<br>
	<br>
	<a href=\"index.php\" class=\"kleinlink\">&#171 zur&uuml;ck</a>
	//<meta http-equiv=\"refresh\" content=\"10; URL=http://www.arne-home.de/\">
	<br><br>
	</td></tr>
	</table>";
	//include("footer.php");
	exit;}
	}
}

if($_GET['action'] == 'inhalt') {
	include("header.php");
	echo "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
	<tr><td align=\"center\">
	<span class=\"grossschrift\"><b>Inhalt des Uploadordners</b></span>
	</td></tr>
	<tr><td width=\"100%\" align=\"center\"><br>";
		$verz=opendir (''.$_SERVER[DOCUMENT_ROOT].'/'.$pfad.'/.');
		while ($File = readdir ($verz)) {
		if($File != '.' && $File != '..') {
		echo "<table cellpadding=\"0\" cellspacing=\"0\" width=\"20%\"><tr><td align=\"left\">";
		if($dl_link==1){
			echo "<img width=\"11\" height=\"11\" src=\"./img/$li_bild\"><a href=\"$pfad/$File\" target=\"_blank\" class=\"grosslink\"> $File</a>";
			}
			else{
				echo "<span class=\"grossschrift\"><img width=\"11\" height=\"11\" src=\"./img/$li_bild\"> $File</span>";
				}
		echo "</td></tr></table>";}
	   	}
	   	if ($dl_gesamt==1) {
	   		function dir_size($dir, &$size, $recursive=TRUE){
			$handle = @opendir($dir);
			if(!$handle)
				return false;
				while ($file = @readdir ($handle)){
					if (eregi("^\.{1,2}$",$file)){
					continue;}
					if(!$recursive && $dir != $dir.$file."/"){
						if(is_dir($dir.$file))
						continue;}
							if(is_dir($dir.$file)){
							dir_size($dir.$file."/", $size, $recursive);}
							else{
								$size += filesize($dir.$file);}
						}
						@closedir($handle);
				}
				function sizeMath($size){
					if($size >= 1024000){
						$size = $size / 1024000;
						$size = sprintf("%01.2f", $size) . ' MB';
					}
					else{
						$size = $size / 1024;
						$size = sprintf("%01.1f", $size) . ' KB';
					}
				return $size;
				}
		$size = 0;
		dir_size(''.$_SERVER[DOCUMENT_ROOT].'/'.$pfad.'/', $size, TRUE);
		$sizeD = sizeMath($size);
		echo "<br><span class=\"kleinschrift\">Gesamtgr&ouml;sse der Dateien: ";
		echo $sizeD;
		if($admin==1) { echo "<br /><a href=\"./admin/index.php\" target=\"_blank\" class=\"kleinlink\">Admin</a>";}
		}
	echo "<br /><br /><a href=\"index.php\" class=\"kleinlink\">&#171 zur&uuml;ck</a><br /><br /></td></tr></table>";
	include("footer.php");
	exit;
}

include("header.php");
?>
<table width="100%" cellpadding="0" cellspacing="0">
<tr><td align="center">
<span class="grossschrift">
<b>Dateien hochladen</b>
</span>
</td></tr>
<tr><td width="100%" align="center">
<span class="grossschrift">
<br>
Die Datei darf nicht gr&ouml;&szlig;er als <?php echo "$mb"; ?> MB sein.<br>
<?php if($dl_endung==1){ echo"Zugelassene Dateiformate"; foreach ($filetypes as $value){echo " $value";}echo ".<br>";} ?>
Wieviele Dateien sollen hochgeladen werden?</span><br>
<br>
<?php if($inhalt==1){ echo "<a href=\"index.php?action=inhalt\" class=\"grosslink\"><b>Inhalt des Uploadordners</b></a><br>";} ?>
<br>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<select name="numfiles" class="select">
<?php
for ($i=1; $i<=$dateien; $i++) {
echo ("<option value=$i>$i");
}
?>
</select>
<input type="Submit" value="Anzahl festlegen" name="up" class="button">
<br><br>
</form>
<div id="wait" style="display: none;"><img src="./img/<?echo $progress; ?>"></div>
<form method="post" action="<?echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" onsubmit="return window.setTimeout(function() { document.getElementById('wait').style.display = 'block'; }, 1000);">
<?php
if (isset($_POST['up'])){
	echo '<span class="grossschrift"><b>'.$numfiles.'</b> ';
	echo $_POST['numfiles'] == '1' ? 'Datei kann' : 'Dateien k&ouml;nnen';
	echo ' hochgeladen werden.</span><br />';
	for ($i=1; $i<=$_POST['numfiles']; $i++){
		echo "<br /><input type=\"File\" name=\"myfile$i\" class=\"input\">";}
		if($upw==1){echo'<br /><br /><span class="grossschrift">Passwort</span> <input type="password" name="pwd" class="input" style="width:40px;">';}
		echo '<br /><input type="Submit" name="sendfiles" value="hochladen" class="button"><br /><br/>';}
if (isset($_POST['sendfiles'])){
	$numsendfiles = count($_FILES);
	foreach($_FILES as $strFieldName => $arrPostFiles){
	$arrPostFiles=preg_replace( array("/‰/","/ˆ/","/¸/","/ƒ/","/÷/","/‹/","/fl/","/ /"),array("ae","oe","ue","Ae","Oe","Ue","ss","_"), $arrPostFiles);
    if ($arrPostFiles['size'] > $b_min && $arrPostFiles['size'] < $b_max){
   			$strFileName = $arrPostFiles['name'];
			$strFileTemp = $arrPostFiles['tmp_name'];
			if ($dl_endung==0) {
				@copy ($strFileTemp, "$_SERVER[DOCUMENT_ROOT]/$pfad/$strFileName");
				echo "<span class=\"grossschrift\"><font color=green><b>Datei $strFileName erfolgreich  hochgeladen.</b></font></span><br><br>";
				if ($upmail==1 && $numsendfiles != 0) {
					$ip = $_SERVER["REMOTE_ADDR"];
					$subject = "Upload auf Homepage";
					$body .= "Datum: ".date("d.m.Y, H:i:s")." Uhr\n";
					$body .= "IP: $ip\n";
					$body .= "$numsendfiles Datei(en) wurden hochgeladen\n";
					$body .= "Domain: http://$_SERVER[HTTP_HOST]$_SERVER[SCRIPT_NAME]\n\n";
					@mail($email, $subject, $body, "From: $email");
					}
			}
			elseif($dl_endung==1) {
				$pfad_info = pathinfo($strFileName);
				$extension = strtolower($pfad_info["extension"]);
				if (in_array($extension,$filetypes)) {
				    if ($dateien_w  == 0) {
                	$unixtime = time();
				    $strFileNameComponents = explode(".",$arrPostFiles['name']);
                    $strFileName = "$strFileNameComponents[0]-$unixtime.".$strFileNameComponents[1];}
					@copy ($strFileTemp, "$_SERVER[DOCUMENT_ROOT]/$pfad/$strFileName");
					echo "<span class=\"grossschrift\"><font color=green><b>Datei $strFileName erfolgreich  hochgeladen.</b></font></span><br><br>";
					if ($upmail==1 && $numsendfiles != 0) {
						$ip = $_SERVER["REMOTE_ADDR"];
						$subject = "Upload auf Homepage";
						$body .= "Datum: ".date("d.m.Y, H:i:s")." Uhr\n";
						$body .= "IP: $ip\n";
						$body .= "$numsendfiles Datei(en) wurden hochgeladen\n";
						$body .= "Domain: http://$_SERVER[HTTP_HOST]$_SERVER[SCRIPT_NAME]\n\n";
						@mail($email, $subject, $body, "From: $email");
						}
			}
			else {
				echo "<span class=\"grossschrift\"><font color=red><b>Unerlaubtes Dateiformat!</span><br><br>";}
			}
		}
	   	else {
	   		echo "<span class=\"grossschrift\"><font color=red><b>Die Datei mu&szlig; gr&ouml;&szlig;er als $b_min Bytes und kleiner als $mb MB sein!</b></font></span><br><br>";}
	}
}
?>
</form>
</td></tr>
</table>
//<?php include("footer.php");?>
So. Da kann ich aber nicht den Dateinamen und den Pfad rausextrahieren, um die in m.planck's Skript zu übergeben.
Ich bin echt zu blöd dafür...
Kann mir da jemand helfen???

Dankeschöööhhn,
Lateiner
Zuletzt geändert von Bierhasser am 5. Nov 2009 20:06, insgesamt 3-mal geändert.
Grund: code=php geht auch ;) aber hier nicht?
Liebe Grüße,
L A T E I N E R

Benutzeravatar
Lateiner
Unverwundbar
Unverwundbar
Beiträge: 1015
Registriert: 22. Mär 2009 15:29
Eigener Benutzer Titel: Pecuniam Non Olet
Kontaktdaten:

Re: Auto-FTP-Forwarding für Dateien?

Beitrag von Lateiner »

Ach ja, das Skript funzt, so wie es oben steht, nicht, da die andern Dateien fehlen. Sind aber für die Funktion unwichtig, es dürfte alles aus der oben ablesbar sein..
Außerdem, ich verstoß snst gegen das Copyright, da ich das Zeug eigentlich nicht online stellen darf... aber das bleibt unter uns...
Liebe Grüße,
L A T E I N E R

Antworten