[PHP] Dateiupload über Formular will nicht klappen

  • Hallo.


    Ich habe das Problem, dass meine Seite keine Bilder annehmel will.


    Mit einem Upload habe ich davor auch noch nie was am Hut gehabt, und so wie ich mir das vorstelle will das nicht klappen.


    Hier mal der Code:


    Nun ist das auch so, dass ich in der Variable $bild nicht einen temp. Uploadnamen habe, so wie das nach meinem PHP-Buch sein soll, sondern den Pfad des Quellbildes. Also so was wie "c:\\ordner\\unterordner\\bild.gif" und das will die Copy-Anweisung dann nicht verdauen.


    Weiß wer, was da faul ist?


    Danke, FLO

  • Zitat

    Warning: copy(C:\\Dokumente und Einstellungen\\flo-da-ho\\Desktop\\parental.gif): failed to open stream: No such file or directory in C:\minixampp\htdocs\eyeoffear\upload\pages\test_upload.php on line 5
    konnte nicht kopieren


    Das ist mal die Fehlermeldung.


    Zu den Rechten. Das ist ein Windows-Server (Netzwerk). Ich glaube nicht, dass ich da mit "777" recht weit komme. Das ist doch nur bei Linux so, oder?


    Und Windowsseitig ist der Ordner für den User freigegeben, auf dessen Konto der Apache läuft. Wenn ich z.B. den Befehl touch( "../pics/test.txt" ) ausführe, dann wird die Datei ohne meckern geschrieben. Also denke ich nicht dass es die Rechte sind...


    Lass mich aber gerne eines besseren belehren.


    Flo

  • Hallo.


    Na so was. Wie konnte ich denn das vergessen. Wenn ich heute Abend wieder daheim bin, dann werde ich das gleich mal ausprobieren. Vielleicht war es das ja :)


    Bis heute Abend, Flo

  • So, jetzt habe ich das post noch eingefügt. Aber es will trotzdem nicht.


    Allerdings habe ich bemerkt, dass in der Adresszeile nach dem Absenden das hier steht:


    Zitat


    Und ich weiss ja nicht, aber das ist doch get und nicht post? Was kann denn da schief laufen?


    Danke, Flo


    Edit: Sch.... Browsercache. Jetzt geht es. War tatsächlich das fehlende POST. Danke!

  • Re:


    [/QUOTE]


    probier mal diese Änderung:


    PHP
    <?
    if ( isset( $bild ) )
    {
    $verzeichnis = "../pics";
    copy( $bild,$verzeichnis.$bild_name);
    }
    ?>


    den Slash zwischen $verzeichnis und $bild_name durch einen Punkt ersetzen. Und entfern die Anführungszeichen.
    Nach geschweifter Klammer kommt kein ; - Zeichen.


    Gruß
    Dirk

  • Re: Re:

    PHP
    Dateiupload über Formular will nicht klappen
    [QUOTE] [i]Original geschrieben von DirkP [/i]
    den Slash zwischen $verzeichnis und $bild_name durch einen Punkt ersetzen. Und entfern die Anführungszeichen.[/QUOTE]
    Warum? Variablen zwischen doppelten Anführungszeichen werden doch problemlos verarbeitet und da kein Slash in einem Variablennamen stehen kann funktionierts auch so -- außerdem nehme ich an, dass der Slash eben in keiner der Variablen schon drinsteht, somit müsste es wenn überhaupt
    [code=php]$verzeichnis . "/" . $bild_name

    heißen ;) Ganz davon abgesehen scheint das Problem doch schon gelöst zu sein :confused: ;)

  • Hallo.


    Also was war schon das, was Weizen gesagt hat am Anfang. Denn durch das fehlende "post" wurde nicht der temp-Name des Bildes in die datei $bild kopiert. Jetzt aber schon. Soll heißen, es ist schon gelöst.


    Das mit dem / stimmt auch. Die lange Schreibweise von Weizen ( $verzeichnist."/".$bild_name ) wurde zwar auch gehen und wäre wohl eleganter, aber Faulheit beim Tippen siegt dann doch immer ;)


    Wenn ich $verzeichnist.$bild_name schreiben würde, dann wäre tatsächelich so was drin:
    ../verzeichnis/unterverzeichnisbild.gif
    Und das wäre sichen nicht so zweckdienlich :)


    So long, FLO

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!