Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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:

Geschrieben

Was steht denn in $attachment drin (also nicht, was drin stehen soll, sondern was tatsächlich drin steht)?

Könnte es sein, das die register_globals in der php.ini auf off stehen und deswegen gar nichts in $attachment drin steht?

Geschrieben

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

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...