Veröffentlicht 22. Januar 200421 j 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
22. Januar 200421 j 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
22. Januar 200421 j Habe ich schon probier . funtkionert aber nicht - Da ja der Client Windows hat - und man da das \\ braucht! MFG RAIN
23. Januar 200421 j 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?
24. Januar 200421 j 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
25. Januar 200421 j 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 Konto oder melde dich an, um einen Kommentar zu schreiben.