Timm: Hiiilfe Dateiupload Problem

hALLO ERSTMAL

ich habe folgendes Problem:
mithilfe dieses befehls wird eine Datei upgeloaded:

$dest = "/home/www/web1432/phptmp/$dateiname";
 if (move_uploaded_file($_FILES['datei']['tmp_name'],$dest)) {...

Habe bereits alles ausprobiert und mein provider lässt mich nur in
DIESES phptmp Verzeichnis uploaden.
So, und jetzt zum Problem: Dieses Verzeichnis liegt oberhalb meines
$DOCUMENT_ROOT. Wie kann ich jetzt einen link zu der upgeloadeten Datei erstellen?????

Eigentlich müsste er ja so lauten

http://www.domain.de/../phptmp/$dateiname
aber das geht natürlich nicht

Danke schonmal, Timm

  1. Hi,

    So, und jetzt zum Problem: Dieses Verzeichnis liegt oberhalb meines
    $DOCUMENT_ROOT. Wie kann ich jetzt einen link zu der upgeloadeten Datei erstellen?????

    gar nicht. Es sei denn, Du konfigurierst den Server so, dass er dieses Verzeichnis mit einem Alias verbindet o.ä.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Konfigurieren ist wohl nicht, bei meinem Provider.
      Aber kann es denn überhaupt sein, daß die den move_uploaded_file
      befehl nur innerhalb des phptmp Verzeichnisses erlauben???

      1. Hallo Timm,

        Aber kann es denn überhaupt sein, daß die den move_uploaded_file
        befehl nur innerhalb des phptmp Verzeichnisses erlauben???

        Schon seltsam. Aber was tun Provider nicht alles, um vermeintlich
        auf der sicheren Seite zu sein...

        Wenn alle Stricke reissen, musst Du halt folgenden Umweg gehen:
        1. Mit PHP den Inhalt der hochgeladenen Datei in eine Variable einlesen.
        2. In einem Verzeichnis, das
           a) ueber's Web zugaenglich ist,
           b) durch PHP beschreibbar ist,
           eine neue Datei erzeugen und den Wert der Variable hineinschreiben.
        3. Die urspruengliche Datei im Verzeichnis phptmp loeschen.

        HTH, mfg
        Thomas.

        http://www.php.net/manual/de/features.file-upload.php
        http://www.php.net/manual/de/function.fopen.php
        http://www.dclp-faq.de/q/q-datei-lesen.html
        http://www.dclp-faq.de/q/q-formular-upload-php3.html

        1. sowohl copy() als auch move_uploaded_file funktionieren nur wenn das Ziel das phptmp Verzeichnis überhalb des $DOCUMENT_ROOT ist.

          Ich krieg die kriese

          1. Hallo nochmal,

            sowohl copy() als auch move_uploaded_file funktionieren nur wenn das Ziel das phptmp Verzeichnis überhalb des $DOCUMENT_ROOT ist.

            Ich habe auch nicht copy() oder move_uploaded_file vorgeschlagen, sondern einen anderen Weg. Hast Du den ausprobiert?
            (Das tueckischste daran duerften wohl die Datei- und Ordner-Rechte sein.)

            Noch ein Vorschlag:
            Mach in einem Verzeichnis, das vom Web her lesbar ist, ein Skript hin, das den Inhalt der hochgeladenen Datei mit fpassthru() "durchreicht".
            http://www.php.net/manual/de/function.fpassthru.php

            Dann kannst Du auf dieses Skript einen Link machen, das einen Parameter erwartet, dank dem es weiss, welche Datei es durchreichen soll.

            Ich krieg die kriese

            Wenn schon heisst das "Krise".
            Und wegen so einem Problemchen lohnt es sich echt nicht,
            depressiv zu werden. :-)

            mfg
            Thomas

  2. hALLO ERSTMAL

    Hallo

    Hast du da am Anfang 3 Verzeichnisse als Auswahl? Also: html, log und phptemp?

    Danke schonmal, Timm

    Gruß Christoph

    --
    Ich bin ein spezialisz!
    (Zitat von VENGA JO)
    sh:) fo:) rl:° br:& ie:| mo:) va:) fl:) ss:| ls:< js:|
    Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
    Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
    1. Ja hab ich, und jetzt??? Kann ich vielleicht mithilfe von php einen link erstellen lassen????

      1. Hi,

        Kann ich vielleicht mithilfe von php einen link erstellen lassen????

        ein Link hat nichts, wirklich gar nichts mit PHP zu tun. Es ist der Server, welcher den Localpart einer URI einer Ressource (die möglicherweise auch eine Datei ist) zuordnet. Die primitivste (und unüblichste) Methode ist, den Localpart einfach als Verzeichnisbaum unterhalb eines konfigurierten DOCUMENT_ROOT zu interpretieren. Solange dem Server nichts anderes einkonfiguriert wurde, kennt er dann auch nur diese Dateien und _keine_ anderen.

        Insbesondere wäre es ein _extremes_ Sicherheitsrisiko, wenn er auf ".." reagieren würde. Ein jeder User hätte vollen Lesezugriff auf jede Datei des gesamten Systems.

        Es gibt einen per HTTP zugänglichen Bereich auf der Festplatte. Jede Datei, die nicht in diesem Bereich liegt, ist per HTTP nicht zugänglich. That's it.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  3. Viel Vlück dannmal, J