Auto-FTP-Forwarding für Dateien?

Webmaster haben hier die Gelegenheit, ihr Wissen auszutauschen. Tips und Tricks zu Webspace, scripten, HTML, JAVA, PHP, MySQL sowie Redirectoren und was sonst noch alles dazugehört.
  • Beitrag 4. Nov 2009 19:23

Auto-FTP-Forwarding für Dateien?

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
Lateiner
Pecuniam Non Olet
Unverwundbar
Benutzeravatar
 

  • Beitrag 4. Nov 2009 19:58

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

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
m.planck
Adliger
Adliger
Benutzeravatar
 

  • Beitrag 4. Nov 2009 20:06

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

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
Lateiner
Pecuniam Non Olet
Unverwundbar
Benutzeravatar
 

  • Beitrag 4. Nov 2009 20:20

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

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

Gruß
m.planck
m.planck
Adliger
Adliger
Benutzeravatar
 

  • Beitrag 4. Nov 2009 20:23

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

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
jürhan
Techniker
Poster Gott
Benutzeravatar
 

  • Beitrag 5. Nov 2009 11:10

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

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
m.planck
Adliger
Adliger
Benutzeravatar
 

  • Beitrag 5. Nov 2009 16:23

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

@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
Lateiner
Pecuniam Non Olet
Unverwundbar
Benutzeravatar
 

  • Beitrag 5. Nov 2009 16:24

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

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

  • Beitrag 5. Nov 2009 17:06

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

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 19: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
Lateiner
Pecuniam Non Olet
Unverwundbar
Benutzeravatar
 

  • Beitrag 5. Nov 2009 17:10

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

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
Lateiner
Pecuniam Non Olet
Unverwundbar
Benutzeravatar
 

Nächste

Zurück zu Webmaster-Stammtisch & Programmiersprachen