Webdesign in Siegen

Fehler bei FTP-Upload per PHP ohne Formular

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

Fehler bei FTP-Upload per PHP ohne Formular

Beitragvon MC Kad am 04.12.2007, 22:48

Hi,

ich habe das Problem dass ich keine Dateien mit der PHP funtkione ftp_put() machen kann.
Das Script connectet zwar und ich kann Ordner erstellen aber wenn ich eine Datei Hochlade kommt ein Fehler (Ich lasse überprüfen ob der Upload gefuntzt hat und davon halt die vordefinierte Meldung).


Vllt kann einer von euch noch mal drüber gucken und mir einen Vorschlag machen oder mir Sagen was ich da falsch gemacht habe.

Warum ich das nicht mit "move_uploaded_files()" mache?
Weil ich automatisch ein bild hochladen lassen will ohne es im Formular einzufügen.

Ps.
Ich will von meinem Apache server auf mein Webspace hochladen.

Schonmal danke fürs lesen.

Code: Alles auswählen
<?php
       
    $ftp_server='mckad.pytalhost.com';//serverip
    $conn_id = ftp_connect($ftp_server);
   
 
    // login with username and password
    $user="phostID";
    $passwd="********";
    $login_result = ftp_login($conn_id, $user, $passwd);

// check connection
   if ((!$conn_id) || (!$login_result)) {
        echo "FTP connection has failed!";
        echo "Attempted to connect to $ftp_server for user $ftp_user_name";
        die;
    } else {
        echo "<br>Connected to $ftp_server, for user $user<br>";
    }
//directorylike /www.velibaba.com/images

  ftp_chdir($conn_id, "admin/test");
 
//$destination_file=ftp_pwd($conn_id);

$destination_file="1280_explosivo.jpg";

echo ("<br>");
print $destination_file;

echo ("<br>");

// upload the file

$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// check upload status
if (!$upload) {
        echo "FTP upload has failed!";
    } else {
        echo "Uploaded $source_file to $ftp_server as $destination_file";
    }

// close the FTP stream
ftp_close($conn_id);
?>
Benutzeravatar
MC Kad
Mitglied
 
Beiträge: 37
Registriert: 25.02.2007

Re: Fehler bei FTP-Upload per PHP ohne Formular

Beitragvon Basti am 05.12.2007, 18:44

Meine erste Frage wäre zunächst, was genau du vorhast? Soll eine Datei auf dem Server verschoben werden oder wirklich eine Datei von dem Rechner des Benutzers hochgeladen werden?

Denn mit der FTP Funktion kannst du genauso wie mit move_uploaded_files() nur Dateien von den lokalen Rechnern der Benutzer hochladen.

Im Moment verstehe ich deshalb nicht ganz den Sinn deines Scripts, das ja dann immer wieder eine festgelegte Datei von dem PC hochladen würde, was ja nicht unbedingt Sinn macht.

Am besten erklärst du dein Vorhaben aber mal ein wenig genauer ;)
Benutzeravatar
Basti
Moderator
 
Beiträge: 1879
Registriert: 15.06.2006
Wohnort: Rheinbreitbach

Re: Fehler bei FTP-Upload per PHP ohne Formular

Beitragvon Ingo am 05.12.2007, 19:36

Hi, MC Kad.
Zusätzlich zu Bastis Frage, interessiert mich, woher die Variable $source_file
ihren Wert hat? Innerhalb des Scripts wird sie ja nur in ftp_put genannt ...
oder hab'sch da im Nikolaus-Wahn 'was übersehen :? ?
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 560
Registriert: 01.04.2007
Wohnort: Neuss/NRW

Re: Fehler bei FTP-Upload per PHP ohne Formular

Beitragvon MC Kad am 06.12.2007, 19:33

Hi, danke für eure Antworten.

Ich habe das script bei php.net gefunden.

Und move_uploaded_files() habe ich nur was gefunden was in kombination mit einem Formular geht....

So, nun mal zu meinem vorhaben, ich habe ein script entwickelt um Bilder zu sortieren (für meine HP), dieses Script wird von meinem Apache aus gestartet und soll eine Datei die innerhalb des Apacheverzeichnisses (also irgendwo in htdocs/) auf meinen ri chtigen Webserver hochladen.

Dabei ist mir egal welche Funktion ich da bei PHP nutze so lange sie klappt.

Und das ich eine fest vorgegebene Datei da stehen habe ist nur aus Testzwecken.
Benutzeravatar
MC Kad
Mitglied
 
Beiträge: 37
Registriert: 25.02.2007

Re: Fehler bei FTP-Upload per PHP ohne Formular

Beitragvon MC Kad am 08.12.2007, 22:11

So, ich habe es nun (endlich) geschafft.

Hier der Code:
Code: Alles auswählen
<?

    $my_connection='ftp://server.domain';//serverip
    $my_connection = ftp_connect($my_connection);
   
   $user="User";
    $passwd="**********";
    $login_result = ftp_login($my_connection, $user, $passwd);

ftp_chdir($my_connection, "Verzeichniss/wo/die/datei/hin/soll/");

// Initiate the Upload
$ret = ftp_nb_put($my_connection, "LokaleDatei.jpg", "ServerDatei.jpg", FTP_BINARY);
while ($ret == FTP_MOREDATA) {
   
   // Irgendwas machen
   echo ".";

   // Upload fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Beim Transfer trat ein Fehler auf";
   exit(1);
}
?>


Der Code stammt übrigens uhrsprünglich von: http://de2.php.net/manual/de/function.ftp-nb-put.php

MfG
Mc Kad
Benutzeravatar
MC Kad
Mitglied
 
Beiträge: 37
Registriert: 25.02.2007


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste