FTP Dateiupload

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

  • FTP Dateiupload

    Erstmal ein herzliches Hallo in die Runde

    Habe die Suchfunktion bereits benutzt, habe aber für mein Problem keine Lösung gefunden.

    Mein Problem:

    Ich habe einen kleinen Dateiupload in PHP geschriben. Lokal hat das ganze auch einwandfrei funktioniert. Nun bekam ich aber das Problem wenn ich auf meinem Onlinewebserver eine Datei (ca 25 MB) hochladen wollte, dass ich ziemlich rasch ein Servertimeout zurückbekommen habe. Also habe ich halt gedacht "Dann machst halt den Upload per FTP, dann kriegst kein Servertimeout" Wenn ich den Upload aber nun Starte kireg ich die Fehlermeldung:

    Warning: Unable to find ftpbuf 1 in /var/www/mydamoin.com/doc/uploads/ftp.php on line 27

    Nun:

    Hier der Quelltext der beiden Files (upload.php und ftp.php)

    upload.php
    PHP-Code:
    <?PHP

        session_start
    ();

        
    import_request_variables("p","g_"); //Ersetzt alle $_POST zu $g_["attribut"]
        
        //echo $g_userfile['type'];
        
        
    include("sessioncheck.inc.php");
                        
        if(
    $g_userfile['type'] != "application/x-zip-compressed" && 
    $g_userfile['type'] != "application/zip"
        {
            echo(
    "<div align=\"center\">Wrong Filetype. You can only
     upload ZIP Files</div>"
    );
            include(
    "menu.inc.php");
        }
        else
        {
            if(
    $g_userfile['size'] > 30000000)
            {
                echo(
    "<div align=\"center\">File was not uploaded. 
    Reason: The File is to big or there is no file to upload.</div>"
    );
                include(
    "menu.inc.php");
            }
            else
            {
                include(
    "ftp.php");
                echo(
    "<HTML><HEAD><TITLE>schmidlin-DBS Files</TITLE></HEAD>");
                include(
    "view.php");
                include(
    "menu.inc.php");
            }
        }
    ?>
    ftp.php
    PHP-Code:
    <?PHP
    //LOGIN DATEN

                
    $host "www.mydomain.com";
                
    $username "myuser";
                
    $password "mypw";
                
    $port 21;
                
    $handle ftp_connect($host$port);
                
    $login ftp_login($handle$username$password);
                
    $verz ftp_pwd($handle);
                
    $newverz ftp_chdir($handle,"admin/files");
                
    $close ftp_quit($handle);
                
                if(
    $handle)
                {

    //FTP LOGIN UND HANDLE
                
                
    if($login)
                {
                    echo(
    "Login erfolgreich! ");
                    if(
    $newverz)
                    {
                        echo(
    "Verzeichniss erfolgreich gewechselt ");                    
                        
    $datei $g_userfile['tmp_name'];
                        
    $ziel $g_userfile['name'];
                        
    $mode "FTP_BINARY";
                        if(
    ftp_put($handle,$datei,$ziel,$mode)) 
                        {
                            echo 
    "Erfolgreich hochgeladen.";
                        }
                        else
                        {
                             echo 
    "Fehler beim Hochladen.";
                        }
                    }
                    else
                    {
                        echo(
    "Verzeichniss konnte nicht gewechselt werden ");    
                    }
                    
    ftp_quit($handle);    
                }
                else
                {
                    echo(
    "Login fehlgeschlagen");    
                }
                
    //ENDE

                
    }
                else
                {
                echo(
    "Verbindung zum FTP-Server ist fehlgeschlagen");    
                }
    ?>
    kann mir da jemand einen Tipp geben was ich falsch mache?

    Danke bereits im Vorraus für die Antworten.

    Beste grüsse aus der Schweiz

    C@$ToR
    Zuletzt geändert von C@$ToR; 28.03.2006, 11:33.
    "Hoffnung; Ohne, wär' Ende"

    Zitat: Till Lindemann

  • #2
    Hallo hier im Forum, leß dir bitte noch kurz die Regeln durch - danke.

    Bevor du da mit FTP anfängst, setz doch einfach mal das time_limit höher.

    Evtl. kommen dir da aber die beschränkungen des Providers in die Quere.


    Zum FTP Upload:
    Wo sollte PHP die Datei hernehmen, die du per FTP "hochladen" willst? Wenn dein PHP auf dem Server des Providers läuft, kann es schlecht eine Datei aus deinem lokalen (dein PC zu Hause)Dateisystem nehmen und den per PHP uploaden.

    PHP = Serverseitig

    Kommentar


    • #3
      Mit time_limit hab ichs bereits probiert. trotzdem danke

      ich lade die datei über ein formular auf den server wo sie danach über $g_userfile['file'] als temp file ansprechbar sein sollte oder lieg ich da falsch?

      danke und beste grüsse

      C@$ToR


      ps: sorry dass der obere post zu lange zeilen hat.......
      "Hoffnung; Ohne, wär' Ende"

      Zitat: Till Lindemann

      Kommentar


      • #4
        Original geschrieben von C@$ToR
        ich lade die datei über ein formular auf den server wo sie danach über $g_userfile['file'] als temp file ansprechbar sein sollte oder lieg ich da falsch?
        siehe move_uploaded_file() - das hat allerdings nichts mit ftp zu tun. Warum funktionier set_time_limit() nicht?

        ps: sorry dass der obere post zu lange zeilen hat.......
        Du kannst ihn jetzt noch ändern

        Kommentar


        • #5
          ps: sorry dass der obere post zu lange zeilen hat.......
          Über http://www.php-resource.de/forum/edi...&postid=435862 kannst du es ändern.

          Kommentar


          • #6
            hab ich gemacht

            safemod beim provider ist on.....
            "Hoffnung; Ohne, wär' Ende"

            Zitat: Till Lindemann

            Kommentar


            • #7
              Ok,

              du hast aber schon verstanden, das du keinen FTP-Upload machen kannst ohne dem User der uploaden soll die Nutzerdaten in die Hand zu drücken und ihn dann mit einem FTP-Programm loszuschicken? PHP kann da garnichts ausrichten.

              Kommentar


              • #8
                Original geschrieben von prego
                Ok,

                du hast aber schon verstanden, das du keinen FTP-Upload machen kannst ohne dem User der uploaden soll die Nutzerdaten in die Hand zu drücken und ihn dann mit einem FTP-Programm loszuschicken? PHP kann da garnichts ausrichten.
                wenn du es so sagst; ja, jetzt hab ichs begriffen.

                dann werd ich mich wohl irgendwo umsehen müssen, wie ich die datei dem zuerst lokal auf die hd knallen kann

                ausser jedemand wüsste grad ne gute möglichkeit...........

                danke für die hilfe
                "Hoffnung; Ohne, wär' Ende"

                Zitat: Till Lindemann

                Kommentar

                Lädt...
                X