jive Geschrieben 2. Februar 2012 Teilen Geschrieben 2. Februar 2012 Hallo zusammen, ich bin gerade dabei ein Upload Script auf meine Webseite einzubinden, ich hab Probleme mit dem Code. Ich will es nicht einfach reinkopieren sondern auch verstehen. Bei dem Befehl: move_uploaded_file weiß ich nicht was ich bei dem Pfad angeben soll. Hier ist das Script: if ( isset ($_POST['upload']) ) { $tempname = $_FILES['file']['tmp_name']; $name = $_FILES['file']['name']; //$type = $_FILES['file']['type']; $size = $_FILES['file']['size']; if ($size > "20000000") { $err[] = "zu große datei !"; } if(empty($err)) { move_uploaded_file($tempname, "uploads/".$name); echo "Datei erfolgreich hochgeladen!"; } else { foreach($err as $error) echo "$error"; } } [/PHP] Vielen Dank für Antworten! mfg jive Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
RBBDD Geschrieben 2. Februar 2012 Teilen Geschrieben 2. Februar 2012 Die Funktion prüft, ob die angegebene Datei per POST upgeloadet wurde und verschiebt sie an den angegebenen Pfad, hier nach uploads/ (vorher anlegen). Wo ist das Verständnisproblem? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jive Geschrieben 2. Februar 2012 Autor Teilen Geschrieben 2. Februar 2012 Mein Problem ist dass das Script nichts hochlädt weil es eine Fehlermeldung ausgibt. Es kommt folgende Fehlermeldung: Warning: move_uploaded_file(mh/uploads/wdwad) [function.move-uploaded-file]: failed to open stream: No such file or directory in /opt/lampp/htdocs/user/mh/db_login/user_bereich.php on line 64 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php3ux50o' to 'mh/uploads/wdwad' in /opt/lampp/htdocs/user/mh/db_login/user_bereich.php on line 64 Ich will halt was uploaden und das tut nichts, ich bin nicht so das Ass in php aber ich versteh schon was im Script passiert, ich kann den Fehler nicht entziffern (zeile 64 ist wo der Befehl move_uploaded_file kommt). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 2. Februar 2012 Teilen Geschrieben 2. Februar 2012 Bei dir liegt die hochgeladene Datei unter /tmp/php3ux50o. Dass die Funktion move_uploaded_file fehlschlägt kann verschiedene Gründen haben. Der erste (und wahrscheinlichste) ist, dass das Zielverzeichnis nicht existiert. Ein anderer Grund wäre, dass es für den Webserver-User nicht schreibbar ist bzw. er keine Dateien anlegen darf. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
RBBDD Geschrieben 2. Februar 2012 Teilen Geschrieben 2. Februar 2012 Dann geh der Fehlermeldung nach. Meine Vermutung stand auch schon oben mit dabei. Viel Glück. Warning: move_uploaded_file(mh/uploads/wdwad) [function.move-uploaded-file]: failed to open stream: No such file or directory Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jive Geschrieben 2. Februar 2012 Autor Teilen Geschrieben 2. Februar 2012 (bearbeitet) Ähm mal ne ganz allgemeine Frage, das Script soll die Funktion haben das ein User eine Datei auf den Webserver hochladen kann. Erfüllt das Script diese Funktion oder ist es nur zum verschieben da? Bearbeitet 2. Februar 2012 von jive Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
RBBDD Geschrieben 2. Februar 2012 Teilen Geschrieben 2. Februar 2012 >Ich will es nicht einfach reinkopieren sondern auch verstehen. Mit <form> hattest Du gestern doch schon in einem anderen Topic Vergnügen, heute die Auswertung per $_POST. Für mich sieht es eher aus, als würde von irgendwo herkopiert werden und das Forum soll es funktionstüchtig machen. Auf eigenen Wunsch - selbst damit Auseinandersetzen was der Ausschnitt aus dem Script macht, ist nicht so schwer! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jive Geschrieben 2. Februar 2012 Autor Teilen Geschrieben 2. Februar 2012 Nein ich will es auch nicht kopieren, die seite ist mein abschlussprojekt und ich muss sie ohne vorahnung von php selbst programmieren, wir dürfen fertige scripts verwenden aber müssen sie erklären können. Niemand soll das Script für mich schreiben, ich kann per $_POST auswerten, ohne frage nur ich weiß nicht ob das Script meine Anforderungen (dokument hochladen) entspricht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
fisianer2009 Geschrieben 2. Februar 2012 Teilen Geschrieben 2. Februar 2012 hast du auf "uploads" schreibrechte? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jive Geschrieben 2. Februar 2012 Autor Teilen Geschrieben 2. Februar 2012 Ja ich hab schreibrechte ich hab auf dem gesamten Webserver schreibrechte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 2. Februar 2012 Teilen Geschrieben 2. Februar 2012 Ja ich hab schreibrechte ich hab auf dem gesamten Webserver schreibrechte. Es spielt nicht unbedingt eine Rolle, ob Du Schreibrechte besitzt, sondern der User der Script ausführt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
chooter696 Geschrieben 2. Februar 2012 Teilen Geschrieben 2. Februar 2012 Nein ich will es auch nicht kopieren, die seite ist mein abschlussprojekt und ich muss sie ohne vorahnung von php selbst programmieren, wir dürfen fertige scripts verwenden aber müssen sie erklären können. Wie wärs wenn du bei einfachen DIngen in PHP anfängst da wie ich annehme du ja Anwendungsentwickler lernst wirst du ja Grundkenntnisse in der Programmierung haben. Von daher ein bischen in PHP einlesen und dann erklärt sich sowas von selbst. Wenn du hingegen keine Zeit mehr hast wegen Projekt zu knapp Kalkuliert + vorher nicht Informiert und Recherchiert dann bleibt dir nur der Weg den du bereits eingeschlagen hast vor. Schreib uns doch mal um welches Script es sich handelt wie du es eingebunden hast was du verändert hast oder was du bereits ausprobiert hast. So per Ferndiagnose sit das schon recht schwierig. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AsoraX Geschrieben 3. Februar 2012 Teilen Geschrieben 3. Februar 2012 (bearbeitet) if ( isset ($_POST['upload']) ) { $tempname = $_FILES['file']['tmp_name']; $name = $_FILES['file']['name']; //$type = $_FILES['file']['type']; $size = $_FILES['file']['size']; $folder = 'uploads/'; if ($size > "20000000") { echo "zu große datei !"; } else } $error_count = count($file_error); if($error_count > 0) { for($i = 0; $i <= $error_count; ++$i) { echo $_FILES[name ]['error'][$i]; } } else { if(move_uploaded_file($file_temp, 'uploads/' .$file_name.'')) { echo '<h3>Upload Successful!</h3>'; } else { echo '<h3>ERROR</h3>'; } } } else { echo '<h3>No file has been selected.</h3>'; } } } [/PHP] So könnte es stimmen... Kanns leider gerade nicht Testen Versuchs mal so.... Nicht perfekt, aber mir ist gerade etwas langweilig ^^ [b]anzeige.php[/b] [PHP] <h1>Dateien</h1> <form enctype="multipart/form-data" action="[PFAD ZUR UPLOAD.PHP]" method="post"> Datei: <input type="file" name="file"> <input type="submit" value="Datei hochladen"> </form> <?php $verz="/"; $verzeichnis = openDir("uploads"); ?> <p>Verzeichnis <b><?PHP echo $verz; ?></b> enthält folgende Dateien:</p> <ul> <?PHP while ($file = readDir($verzeichnis)) { if ($file != "." && $file != ".."){ echo "<li><a href=\"uploads".$verz."/".$file."\">".$file."</a></li>"; } } closeDir($verzeichnis); ?> </ul> upload.php <?php $tempname = $_FILES['file']['tmp_name']; $name = $_FILES['file']['name']; if(copy($tempname, "uploads/".$name)) { echo "Die Datei ".$name." wurde erfolgreich hochgeladen!"; } else { echo "Der Upload ist leider fehlgeschlagen."; } ?> [/PHP] Ich nutze hier bewusst den Copy befehl, da dieser auch im Safe mode ohne probleme läuft, und die temps sich eh nicht lange halten! [b]WICHTG:[/b] die "[b]anzeige[/b].php" und "[b]upload[/b].php" sollten in dem gleichen ordner sein... zu den beiden Datein musst du logischerweise auch den Ordner [b]uploads [/b]in das verzeichniss packen Bearbeitet 3. Februar 2012 von AsoraX Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 3. Februar 2012 Teilen Geschrieben 3. Februar 2012 @AsoraX Das war jetzt den dritte Post den ich von dir auf dem Schirm habe und drei mal hast du das eigentliche Problem ignoriert. Deine Lösung mit der copy-Funktion wird ebenfalls scheitern falls der Ornder nicht existiert oder die Rechte nicht stimmen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AsoraX Geschrieben 3. Februar 2012 Teilen Geschrieben 3. Februar 2012 (bearbeitet) Erstens habe ich das mit dem Ordner sogar extra nochmal dazu gepinnt, und soviel Hirn denke ich kann man erwarten ... Was denn für rechte? Schreibrechte (CHMOD 777) gelden für Datein, und nicht für Ordner... Wer seinen "uploads" ordner einen schreibschutz verpasst, über den brauchen wir garnicht reden! --------------- [EDIT] Unter aktueller. Xampp und Plesk getestet und zumindest bei meiner zweiten lösung..... es geht so, und das ohne den hauch einer Konfiguration Kann dir aber auch gerne noch ein Script schreiben was dir erlaubt Ordner zu erstellen Bearbeitet 3. Februar 2012 von AsoraX 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.