Rain Geschrieben 22. Januar 2004 Teilen Geschrieben 22. Januar 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 22. Januar 2004 Teilen Geschrieben 22. Januar 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rain Geschrieben 22. Januar 2004 Autor Teilen Geschrieben 22. Januar 2004 Habe ich schon probier . funtkionert aber nicht - Da ja der Client Windows hat - und man da das \\ braucht! MFG RAIN Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 23. Januar 2004 Teilen Geschrieben 23. Januar 2004 Morgen! Wie erhälst du denn $attachment? Per HTTP-Upload? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rain Geschrieben 23. Januar 2004 Autor Teilen Geschrieben 23. Januar 2004 $attachment erhalte ich über ein Formular............... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 23. Januar 2004 Teilen Geschrieben 23. Januar 2004 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 24. Januar 2004 Teilen Geschrieben 24. Januar 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rain Geschrieben 25. Januar 2004 Autor Teilen Geschrieben 25. Januar 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 25. Januar 2004 Teilen Geschrieben 25. Januar 2004 Hallo, hat der Webserver in dem Uploadverzeichnis Schreibrechte? Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rain Geschrieben 25. Januar 2004 Autor Teilen Geschrieben 25. Januar 2004 Theoretisch schon denn htdocs sind chmod 777 gesetzt worden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.