Big B Geschrieben 4. Mai 2006 Teilen Geschrieben 4. Mai 2006 Hallo zusammen, habe Probleme beim Upload von Dateien. Quelltext wie folgt: <form enctype="multipart/form-data" method="post" action="upload.php"> <table align=center width=90% border=0> <tr><td id=headline colspan="3" align=center width=100%> <b>Bitte die entsprechende Datei uploaden</b></td> </tr> <tr><td width=65%>File to Upload:</td> <td><input type="file" name="file" size="30"></td> <td><input type="submit" name="submit" value="Datei senden"></td> </tr> </table> </form> und in der upload.php wie folgt: <? $path = "/root/home/upload/$file_name"; if (!move_uploaded_file($file,$path.$file_name) { echo "Hier steht dieser Text, falls etwas nicht geklappt hat."; } else { echo "Die Datei $file_name wurde erfolgreich hochgeladen."; } ?> Wenn ich nun eine Datei uploaden will, dann wird mir nix angezeigt, weder positive noch negative Rückmeldung, was ja eigentlich sein sollte. Habe schon viel probiert, komme aber nihct auf den Fehler. Kann mir jemand helfen?? MfG Big B Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 4. Mai 2006 Teilen Geschrieben 4. Mai 2006 Ich möchte dich mal auf diesen Thread[1] hinweisen. Da ist unter anderem diese Seite[2] verlinkt. Da steht wie du einen Upload hinbekommst. Ich denke mal das es daran liegt das die nicht mit der temporären Datei Arbeitest die php für dich anlegt. Weil die Datei ja nicht direk in dein Endverzeichnis kopiert wird sondern erstmal in ein Temporäres. Aus diesem musst du dann via move_uploded_file die Datei in dein Verzeichnis auf dem Server kopieren. [1] http://forum.fachinformatiker.de/skript-webserverprogrammierung/92126-jpgs-hochladen.html [2] http://www.php-faq.de/q/q-formular-upload-php4.html Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Big B Geschrieben 4. Mai 2006 Autor Teilen Geschrieben 4. Mai 2006 Also habe leider trotzdem noch Fragen: "./newfile.txt" ..... für was steht dies?? muss ich mir eine Textdatei anlegen, in der der Pfad hinterlegt ist? Habe jetzt einfach mal dort meine Pfadangabe reingesteckt und dann ausprobiert, auch weider das selber weißer Bildschirm. Blicke irgendwie nicht durch MfG Big B P.S. Im selben Zug noch die Frage, kann ich die Uploadfunktion, sollte ich sie irgendwie mit euerer Hilfe ans Laufen kriegen, in ein JavaScript Popup auslagern?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 4. Mai 2006 Teilen Geschrieben 4. Mai 2006 Hast du dir mal die Parameter der Funktion move_uploaded_file angesehen? Da gibst du ja zuerst den temporären Ordner an und dann das Verzeichnis mit dem Dateinamen. Das Beispiel mit der ./newfile.txt soll nur andeuten das er jetzt eine neue Datei anlegt. Dem Server ist es erstmal egal welche Endung die Datei hat und der Inhalt auch. Du musst nun wissen was für eine Datei der User hochladen hat. Dafür gibst du am besten mal das $_FILES Array aus und schaust es dir an. Mit Hilfe des php Manuals kannst du die einzelnen Daten sicherlich interpretieren. Gib doch mal bitte den die jetzt veränderten Codezeilen kurz mit an also das Formular und auch den dazugehöreigen php Teil. Ob das in einem zusätzlichen popup Fenster geht kann ich dir jetzt nicht genau sagen mir fällt aber spontan nichts ein weshalb es nicht gehen sollte. Ist eben von deinen Scripten abhängig. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Big B Geschrieben 4. Mai 2006 Autor Teilen Geschrieben 4. Mai 2006 Also momentaner STand ist: <form enctype="multipart/form-data" method="post" action="upload.php"> <table align=center width=90% border=0> <tr><td id=headline colspan="3" align=center width=100%><b>Bitte die entsprechende Datei uploaden</b></td></tr> <tr><td width=65%>File to Upload:</td><td><input type="file" name="probe" size="30"></td> <td><input type="submit" name="submit" value="Datei senden"></td></tr> </table> </form> also quasi gleichgeblieben bis auf den Namen. <? $path = "/root/home/upload/$file_name"; if (isset($_FILES['probe']) and ! $_FILES['probe']['error']) { // Alternativ: and $_FILES['probe']['size'] move_uploaded_file($_FILES['probe']['tmp_name'], $path.$$_FILES['probe']['name']); printf("Die Datei %s steht jetzt als " . "newfile.txt zur Verfügung.<br />\n", $_FILES['probe']['name']); printf("Sie ist %u Bytes groß und vom Typ %s.<br />\n", $_FILES['probe']['size'], $_FILES['probe']['type']); } ?> Wenn ich nun das Upload versuche, dann kommt folgende Meldung: Die Datei test.doc steht jetzt als newfile.txt zur Verf? Sie ist 10752 Bytes groߠund vom Typ application/msword. Problem an der Sache ist nur, die Datei ist nihct in dem Verzeichniss, wo sie sein sollte :confused: :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 4. Mai 2006 Teilen Geschrieben 4. Mai 2006 arbeitest du lokal oder läuft das auf einem webspace? ich hatte mal das problem, dass move_uploaded_file nicht klappte da ich keine rechte hatte im temporären verzeichnis zu "cutten" probiers mal mit dem copy() befehl ansonsten sehe ich noch evtl. einen fehler bei ..$path.$$_FILES['probe']['name']); da sind $$ eines zuviel meiner meinung nach Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Big B Geschrieben 4. Mai 2006 Autor Teilen Geschrieben 4. Mai 2006 Also das mit dem doppelten $ war en Scheribfehler, danke für den Hinweis, aber auch mit nach Verbesserung funzt es nicht. Habe auch mal die Alternative mit copy probiert: copy($_FILES['probe']['tmp_name'], $path.$_FILES['probe']['name']); funzt aber natürlich auch nicht. Habe echt keine AHnung an was es liegen kann. MfG Big B Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 4. Mai 2006 Teilen Geschrieben 4. Mai 2006 dann sollte es am pfad liegen. lass dir den mal auf der seite ausgeben!! du hast hier definiert: $path = "/root/home/upload/$file_name"; dann machst du move_uploaded_file($_FILES['probe']['tmp_name'], $path.$$_FILES['probe'] das ist doppelt gemoppelt und du solltest $file_name aus der $path variablen rausnehmen da du ja nach $path.$_FILES['probe'] kopierst Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Big B Geschrieben 4. Mai 2006 Autor Teilen Geschrieben 4. Mai 2006 Also habe den Code wie folgt geändert: <? $path = "/root/home/upload/"; echo $path; if (isset($_FILES['probe']) and ! $_FILES['probe']['error']) { move_uploaded_file($_FILES['probe']['tmp_name'], $path.$_FILES['probe']['name']); if (!move_uploaded_file($_FILES['probe']['tmp_name'], $path.$_FILES['probe']['name'])) { printf("Die Datei %s steht jetzt " . " zur Verfügung.<br />\n", $_FILES['probe']['name']); printf("Sie ist %u Bytes groß und vom Typ %s.<br />\n", $_FILES['probe']['size'], $_FILES['probe']['type']); } else { echo "der ****** funzt nicht"; } } ?> Funktioniert immer noch nicht... MfG Big B Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 4. Mai 2006 Teilen Geschrieben 4. Mai 2006 wie isses denn mit den rechten des ordner "upload"...hast du da schreibrechte? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Big B Geschrieben 4. Mai 2006 Autor Teilen Geschrieben 4. Mai 2006 Ja, ist mit 777 eingerichtet, sprich Vollzugriff für jeden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 4. Mai 2006 Teilen Geschrieben 4. Mai 2006 Also habe den Code wie folgt geändert: move_uploaded_file($_FILES['probe']['tmp_name'], $path.$_FILES['probe']['name']); if (!move_uploaded_file($_FILES['probe']['tmp_name'], $path.$_FILES['probe']['name']))[/php] Kann so auch nicht funktionieren move_uploaded_file verschiebt die hochgeladene Datei an den angegebenen Ort. Direkt nach dem Verschieben versuchst du nochmal die Datei zu verschieben und prüfst es dabei dann auch ab. Und beim zweiten mal kann es ja nicht mehr gehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Big B Geschrieben 4. Mai 2006 Autor Teilen Geschrieben 4. Mai 2006 Also wenn ich das richtig verstanden habe sollte der Code jetzt so richtig sein: <? $path = "home/upload/"; echo $_FILES['probe']['tmp_name']; echo $path.$_FILES['probe']['name']; if (isset($_FILES['probe']) and ! $_FILES['probe']['error']) { if (!move_uploaded_file($_FILES['probe']['tmp_name'], $path.$_FILES['probe']['name'])) { printf("Die Datei %s steht jetzt " . " zur Verfügung.<br />\n", $_FILES['probe']['name']); printf("Sie ist %u Bytes groß und vom Typ %s.<br />\n", $_FILES['probe']['size'], $_FILES['probe']['type']); } else { echo "der ****** funzt nicht"; } } ?> aber noch immer das selbe Problem, die Datei kommt nicht auf dem Server an. Ist es von Bedeutung, das es sich um einen Linux-Server handelt?? Kann es vielleicht an der Pfad angabe liegen?? Ab wo muss ich diese beginnen?? MfG Big B Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 4. Mai 2006 Teilen Geschrieben 4. Mai 2006 <? $path = "home/upload/"; ?> Ist es von Bedeutung, das es sich um einen Linux-Server handelt?? Ja, denn diesen Pfad gibt es wohl nicht (kam mir vorhin schon komisch vor, aber ich dachte, du wüsstest, was du tust Ich schätze mal, du meinst $path = "/home/upload/"; Das oberste Verzeichnis wird auch root genannt (Wurzel (im Verzeichnisbaum)). /root/home... kann es auch geben, aber das ist eher selten, nur wenn du es explizit so angelegt hast. Mehr zu Verzeichnissen unter Linux findest du z.B. hier: http://www.selflinux.org/selflinux/html/verzeichnisse_unter_linux01.html Ach ja, AFAIK reicht ein move_uploaded_file um zu prüfen, ob der Upload angekommen und ok ist. Die Prüfung vorher könntest du dir dann sparen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Big B Geschrieben 9. Mai 2006 Autor Teilen Geschrieben 9. Mai 2006 Hallo, sry das ich erst jetzt wieder poste, aber mir wurde was mit einer wichtigeren prio reingeschoben... Aber das Problem besteht immer noch, auch wenn ich $path anpasse... $path = "/home/db/upload/"; solangsam krieg ich en Hals,... Bin auch der festen Überzeugung das es an LINUX liegt, weil bei Windows hatt ich nie Probleme Kann mir jemand noch mit Ideen oder Wissen helfen?? MfG Big B Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Big B Geschrieben 9. Mai 2006 Autor Teilen Geschrieben 9. Mai 2006 Hallo, sry das ich erst jetzt wieder poste, aber mir wurde was mit einer wichtigeren prio reingeschoben... Aber das Problem besteht immer noch, auch wenn ich $path anpasse... $path = "/home/db/upload/"; Also der geasmte Upload Code sieht jetzt wie folgt aus: <? $path = "/home/db/upload/"; echo $_FILES['probe']['tmp_name']; echo $path.$_FILES['probe']['name']; if (isset($_FILES['probe']) and ! $_FILES['probe']['error']) { //copy($_FILES['probe'], "uploads/".$_FILES['probe']); if (!move_uploaded_file($_FILES['probe']['tmp_name'], $path.$_FILES['probe']['name'])) { printf("Die Datei %s steht jetzt " . " zur Verfügung.<br />\n", $_FILES['probe']['name']); printf("Sie ist %u Bytes groß und vom Typ %s.<br />\n", $_FILES['probe']['size'], $_FILES['probe']['type']); } else { echo "der ****** funzt nicht"; } } ?> solangsam krieg ich en Hals,... Bin auch der festen Überzeugung das es an LINUX liegt, weil bei Windows hatt ich nie Probleme Kann mir jemand noch mit Ideen oder Wissen helfen?? MfG Big B Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 9. Mai 2006 Teilen Geschrieben 9. Mai 2006 aaalso mal ganz langsam und von vorn an linux leigts bestimmt nicht. poste doch mal den gesamten pfad der anwendung und dann poste wohin genau du die datei haben willst. so wie das jetzt ist glaube ich nicht daran dass es funktionieren kann, denn wenn deine anwendung z.b. hier liegt: http://localhost/ordner/upload.php und dein pfad dann /home/db/upload/ ist, würdest du ja deine datei nach http://localhost/ordner/home/db/upload/ kopieren wollen und das ist es sicher nicht oder? poste mal beide, also anwendungs und dateispeicher ordner. meinetwegen in pseudo form, muss ja nich jeder deine "echte" ordnerstruktur und server sehn Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Big B Geschrieben 10. Mai 2006 Autor Teilen Geschrieben 10. Mai 2006 Hi, also ich will definitiv in den Ordner /home/da/uploads die Datei uploaden. meine uploadscript befinden sich in /a/b/c/d/upload.php Also liegt es wohl daran, wenn cih dich richtig verstanden habe, aber wie kann ich das denn ändern? MfG Big B Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 10. Mai 2006 Teilen Geschrieben 10. Mai 2006 Hi, also ich will definitiv in den Ordner /home/da/uploads die Datei uploaden. meine uploadscript befinden sich in /a/b/c/d/upload.php Also liegt es wohl daran, wenn cih dich richtig verstanden habe, aber wie kann ich das denn ändern? MfG Big B hmm schwieriger fall du musst aus deinem ordner /a/b/c/d/upload.php einfach so weit zurückgehen bis du im übergeordneten ordner von /home/ bist z.b. deine ordnerstruktur www home da uploads a b c d/upload.php dann is der pfad in deinen upload ordner ../../../../da/uploads naja und für andere fälle einfach anpassen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Big B Geschrieben 10. Mai 2006 Autor Teilen Geschrieben 10. Mai 2006 HI, also sieht jetzt wie folgt aus: <? $path = "/../../../../home/da/upload/"; echo $_FILES['probe']['tmp_name']; echo $path.$_FILES['probe']['name']; if (isset($_FILES['probe']) and ! $_FILES['probe']['error']) { if (!move_uploaded_file($_FILES['probe']['tmp_name'], $path.$_FILES['probe']['name'])) { printf("Die Datei %s steht jetzt " . " zur Verfügung.<br />\n", $_FILES['probe']['name']); printf("Sie ist %u Bytes groß und vom Typ %s.<br />\n", $_FILES['probe']['size'], $_FILES['probe']['type']); } else { echo "Funzt nicht"; } } ?> ich bin mit der upload.php in /var/www/html/PList/upload.php will aber in die /home/da/upload/xx.doc es kommt jedoch aus ausgabe das es nciht funzt.... woran kann das denn jetzt nmoch liegen? MfG Big B Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 10. Mai 2006 Teilen Geschrieben 10. Mai 2006 HI, also sieht jetzt wie folgt aus: <? $path = "/../../../../home/da/upload/"; echo $_FILES['probe']['tmp_name']; echo $path.$_FILES['probe']['name']; if (isset($_FILES['probe']) and ! $_FILES['probe']['error']) { if (!move_uploaded_file($_FILES['probe']['tmp_name'], $path.$_FILES['probe']['name'])) { printf("Die Datei %s steht jetzt " . " zur Verfügung.<br />\n", $_FILES['probe']['name']); printf("Sie ist %u Bytes groß und vom Typ %s.<br />\n", $_FILES['probe']['size'], $_FILES['probe']['type']); } else { echo "Funzt nicht"; } } ?> ich bin mit der upload.php in /var/www/html/PList/upload.php will aber in die /home/da/upload/xx.doc es kommt jedoch aus ausgabe das es nciht funzt.... woran kann das denn jetzt nmoch liegen? MfG Big B du müsstest echtmal deine gesamte ordnerstruktur posten. die uplaod liegt in /var/www/html/PList/upload.php aber wo ist denn dazu gesehen das verzeichnis "home" ?? ist es noch eine etage höher? also home/var/www/html/PList/upload.php oder liegt es ganz wo anders? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Big B Geschrieben 10. Mai 2006 Autor Teilen Geschrieben 10. Mai 2006 home liegt auf der selben höhe wie var Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 10. Mai 2006 Teilen Geschrieben 10. Mai 2006 home liegt auf der selben höhe wie var also dann ../../../home/da/uploads Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 10. Mai 2006 Teilen Geschrieben 10. Mai 2006 Hast du/ php überhaupt die Rechte um in das Verzeichnis zu schreiben? Je nach Anbieter des Servers kannst du in keine anderen Verzeichnise schreiben als in die vom Webserver. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Big B Geschrieben 10. Mai 2006 Autor Teilen Geschrieben 10. Mai 2006 Jetzt sagt er wieder das er verschoben hätte, aber keine datei vorhanden... hab auch mal en / nach dem upload versucht, aber vergebens noch ideen? MfG Big B 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.