Zum Inhalt springen

FTP Verbindung unter Linux/Windows - Probleme


Empfohlene Beiträge

Servus

Ich habe folgenden Code auf einem Windows Server entwickelt, dieser funktioniert aber nach dem Upload auf einen Linux Server nicht mehr.

Auf Linux läuft lampp von apachefriends

Auf Windows läuft wampp, wbenfalls von apachefriends.

Hier der Code:

Attachment wird vorher in einem file input Objekt(HTML) festgelegt.


if($attachment !="") // nur wenn eine Datei ausgewählt wurde geht es zum FTP Upload

{

// Nun folgt der FTP Upload der Datei

$connection_id = ftp_connect($C_FTP_HOST);

$login_result = ftp_login($connection_id,$C_FTP_USER,$C_FTP_PASSWORD);


if((!$connection_id) || (!$login_result))

{

    echo" FTP_Verbindung konnte nicht hergestellt werden!<br>";

    die; // Programmausführung beenden

}

else

{

    //echo"Verbindung mit dem FTP Server aufgebaut...<br><br>";

}


$dest_filenamearray = explode('\\',$attachment);

$zieldatei = array_pop ($dest_filenamearray);

$lokale_datei = $attachment;

$dateien = ftp_nlist($connection_id, '');

FOREACH($dateien as $r)

{

    if($r == $zieldatei)

      {

        echo "<b>FEHLER</b> die Datei <b>$r</b> besteht bereits - Ändern sie den Dateinamen und fügen Sie die<br> Datei erneut hinzu.</b><br><br>";

        die;

      }

}


$upload = ftp_put($connection_id, $zieldatei, $attachment, FTP_BINARY);


      if (!$upload)

      {

        echo"FTP Upload war fehlerhaft..";

      }

      else

      {

        echo"Sie haben folgende Datei erfolgreich hinzugefügt:$attachment <br>";

        $ftp_upload_success = 1;

     }

ftp_quit($connection_id);


//echo"<br>Die Verbindung mit dem FTP Server wurde beendet...<br>";

}

Bei derm Linux Server, kommt immer die Fehlermeldung: dass der FTP Upload nicht funtkioniert hat. Das Verzeichnis auslesen funktioniert aber.....

Ich würde mich über eine Antwort freuen

RAIN

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo!

Ich würde beim Linux-Script das Backslash '\' in folgender Zeile


$dest_filenamearray = explode('\',$attachment);
[/PHP]

in ein Slash '/'

[PHP]
$dest_filenamearray = explode('/',$attachment);

umändern. Dies ist nämlich in der UNIX-Welt der Verzeichnis-Trenner.

Gruß

Benjamin

P.S. komisch, er zeigt das Backslash nicht an :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

also, wenn du $attachment direkt über ein Formular erhälst, und in der Variablen nur der Dateiname einer Client-Datei steht, dann kann es kaum funktionieren. Dafür müsste der HTTP-Server (bzw. dein PHP-Interpreter) auf die Datei des Clients zugreifen und das geht nicht.

Wenn du es einem Seitenbesucher ermöglichen willst, eine Datei upzuloaden und per FTP zu verschicken, dann musst du dir IMHO das hier mal durchlesen und dann die temporäre Datei per FTP und vielleicht mit dem richtigen Dateinamen, den du dann auch mitgeschickt bekommst, weiterschicken.

mfg

Benjamin

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus!

ICh habe nun folgendes Ausprobiert - Was auch nicht funtkioniert!!


Mit diesem Formular wählt man aus, welche Datei hinaufgeladen werden soll:


<form enctype="multipart/form-data" method="post" action="new_entry.php">

<input type="hidden" name="MAX_FILE_SIZE" value="30000">

<input name="userfile" type="file">

<input type="submit" value="Fertig" name ="gesendet">  <input type="reset" value="Eingaben rücksetzen">



Mit folgendem Code verarbeite ich das Formular:

$uploaddir = 'htdocs/';


print "<pre>";

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {

   print "Datei wurde erfolgreich hinzugefügt.<br>";

   print_r($_FILES);

}

 else {

   print "FEHLER! Datei konnte nicht hinzugefügt werden.<br>";

   print_r($_FILES);

}

Auf meinem lokalen WAMPP Server Funktioniert das Skript wunderbar. Wenn ich es jedoch am Linux

Server ausprobieren möchte - so bekomme ich immer die Fehlermeldungen:

Warning: move_uploaded_file(htdocs/model05.jpg): failed to open stream: No such file or directory in /opt/lampp/htdocs/new_entry.php on line 20

Warning: move_uploaded_file(): Unable to move '/tmp/phpchLLtn' to 'htdocs/model05.jpg' in /opt/lampp/htdocs/new_entry.php on line 20

FEHLER! Datei konnte nicht hinzugefügt werden.

(

[userfile] => Array

(

[name] => model05.jpg

[type] => image/pjpeg

[tmp_name] => /tmp/phpchLLtn

[error] => 0

=> 3469

)

Meine Frage ist nun, welche Änderungen, bzw Einstellungen ich beim Linux Server machen

muss, damit dieses Skript funktioniert.

ICh würde mich freuen wenn ihr mir Tipps gebt, um mein Problem zu lösen.

RAIN

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...