FTP Upload funktioniert nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • FTP Upload funktioniert nicht

    Hallo Leute,

    dies ist mein erster Beitrag hier

    Ich will auf meiner Webseite ein Formular haben, mit dem ein Surfer eine Datei von seiner lokalen Festplatte auf den Server uploaden kann.

    Zuerst folgendes:
    Falls ihr Infos zu Einstellungen des Servers braucht, hier findet ihr alles

    http://nx24.de/phpinfo.php

    Nur Soviel vorab, für die, die nicht den Link oben anklicken wollen
    PHP Version 4.3.4
    Register_Globals: ON


    Hier der Code meiner Webseite:

    <?php

    // set up basic connection
    if(!isset($conn_id)) {
    $ftp_server = "www.mein-server.de";
    $conn_id = ftp_connect($ftp_server);

    $login_result = ftp_login($conn_id, "benutzername", "passwort");
    $ftp_pasv = ftp_pasv($conn_id, TRUE);
    echo " ftp_pasv ist $ftp_pasv <br> \n ";

    // check connection
    if ((!$conn_id) || (!$login_result)) {
    echo "FTP-Verbindung nicht möglich!";
    echo "&nbsp;Verbindungsversuch zu $ftp_server für Benutzer $ftp_user_name schlug fehl.";
    exit;
    } else {
    echo "Verbunden mit $ftp_server";
    }

    }

    // upload the file
    if($go == "Hochladen") {
    $upload = ftp_put($conn_id, $source_file, $source_file, FTP_BINARY);

    if(!is_file($source_file))
    { die("That file ".$source_file." doesn't exist... at least not in that location."); }
    if(!is_readable($source_file))
    { die("You do not have permissions to read/access this file."); }
    if(filesize($source_file) > 0)
    {
    echo "Everything checks out. The file exists, is readable, and has " .
    filesize($source_file) . " bytes of data.";
    } else {
    echo "That file has no data!";
    }

    if (isset($_FILES['source_file']) and ! $_FILES['source_file']['error']) {
    move_uploaded_file($_FILES['source_file']['tmp_name'], "./newfile.txt");
    printf("Die Datei %s steht jetzt als " .
    "newfile.txt zur Verfügung.<br />\n",
    $_FILES['source_file']['name']);
    printf("Sie ist %u Bytes groß und vom Typ %s.<br />\n",
    $_FILES['source_file']['size'], $_FILES['source_file']['type']);
    }

    // check upload status
    if (!$upload) {
    echo " FTP upload schlug fehl! ";
    echo "\nlogin_result ist $login_result, upload ist $upload,
    conn_id ist $conn_id und source_file ist $source_file";
    } else {
    echo "$source_file wurde auf $ftp_server hochgeladen als $destination_file";
    }

    // close the FTP stream
    ftp_close($conn_id);
    }
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Bild hochladen</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>

    <body>

    <form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
    <p>Bild-Datei zum Hochladen auswählen:</p>
    <input type="hidden" name="MAX_FILE_SIZE" value="30000">
    <p><input type="file" name="source_file" /></p>
    <p><input type="submit" name="go" value="Hochladen" /></p>
    </form>


    </body>
    </html>


    Das ist die Fehlermeldung:

    ftp_pasv ist 1
    Verbunden mit www.mp-catering.deThat file doesn't exist... at least not in that location.

    Wäre klasse, wenn irgendjemand den Code ändern könnte, so dass er funktioniert!
    Danke!!!

  • #2
    damit das per ftp funktioniert, müsste ein besucher deiner seite
    1. php + webserver installiert haben
    2. über die ftp-zugangsdaten zu deiner seite verfügen
    mit anderen worten die idee ist suboptimal ...

    hier steht, wie es geht: http://de2.php.net/manual/de/features.file-upload.php
    Kissolino.com

    Kommentar


    • #3
      Moin,
      und ich bin der Meinung das ihm nur noch der Verzeichniswechsel fehlt.
      Sprich:
      ftp_chdir($conn_id, "www.seineseite.com");
      ftp_chdir($conn_id, "indiesesVerzeichnis");
      //wechselt nach -> www.seineseite.com/indiesesVerzeichnis

      bevor er ftp_put() nutzen kann.
      Natürlich sollte auch das Verzeichnis entsprechende Rechte besitzen (chmod 777) als beispiel

      ich gehe davon aus das aus diesem Grund nicht uploadet werden konnte.

      @wurzel
      wiso? Der User seiner Seite bekommt doch nur das Form zu sehen in das er das File uploadet. Den Rest macht das PHP-Script doch alleine, oder irre ich da?

      Grüsse Murray
      Zuletzt geändert von Murray; 16.04.2004, 22:05.

      Kommentar


      • #4
        Original geschrieben von Murray
        @wurzel
        wiso? Der User seiner Seite bekommt doch nur das Form zu sehen in das er das File uploadet. Den Rest macht das PHP-Script doch alleine, oder irre ich da?
        schau dir mal den code genau an ... SO ist das kompletter schwachfug, auch wenn er wirklich eine ftp-übertragung vornehmen will
        Kissolino.com

        Kommentar


        • #5
          Hallo, danke erstmal für die Tipps. Ich habe die Anleitung, die ihr mir gegeben habt, durchgearbeitet und eine neue Version erstellt:
          Der "Basispfad" ist laut Provider:
          Basispfad: /vpserver/web/vps04080/www
          Was auch immer Basispfad heisst....
          --
          Folgende Einstellungen in der php.ini
          register_globals: ON
          file_uploads: ON
          upload_max_filesize: 20M
          upload_tmp_dir: LOCAL: /var/www/web/vps02102/tmp
          MASTER: no value
          post_max_size: 8M
          --

          <?php

          // set up basic connection
          if(!isset($conn_id)) {
          $ftp_server = "www.mp-catering.de";
          $conn_id = ftp_connect($ftp_server);

          $login_result = ftp_login($conn_id, "user_1", "pass");
          $ftp_pasv = ftp_pasv($conn_id, TRUE);
          echo " ftp_pasv ist $ftp_pasv <br> \n ";

          // check connection
          if ((!$conn_id) || (!$login_result)) {
          echo "FTP-Verbindung nicht möglich!";
          echo "&nbsp;Verbindungsversuch zu $ftp_server für Benutzer $ftp_user_name schlug fehl.";
          exit;
          } else {
          echo "Verbunden mit $ftp_server";
          }

          }


          $uploaddir = '/vpserver/web/vps04080/www/mp-catering/';

          print "<pre>";
          if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
          print "File is valid, and was successfully uploaded. Here's some more debugging info:\n";
          print_r($_FILES);
          } else {
          print "Possible file upload attack! Here's some debugging info:\n";
          print_r($_FILES);
          }


          // close the FTP stream
          ftp_close($conn_id);
          // }
          ?>

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <title>Bild hochladen</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
          </head>

          <body>

          <form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
          <p>Bild-Datei zum Hochladen auswählen:</p>
          <input type="hidden" name="MAX_FILE_SIZE" value="20000">
          <p><input type="file" name="userfile" /></p>
          <p><input type="submit" name="go" value="Hochladen" /></p>
          </form>
          <hr />

          </body>
          </html>
          --

          Ich bekomme folgende Fehlermeldung:

          ftp_pasv ist 1
          Verbunden mit www.mp-catering.de
          Possible file upload attack! Here's some debugging info:
          Array
          (
          [userfile] => Array
          (
          [name] => pfade.jpg
          [type] =>
          [tmp_name] =>
          [error] => 2
          [size] => 0
          )

          )

          Ich werde noch nicht ganz schlau aus dem ganzen...

          Wer weiss weiter?
          Zuletzt geändert von moguai1; 18.04.2004, 14:17.

          Kommentar

          Lädt...
          X