Wie muss der Link aussehen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wie muss der Link aussehen?

    Servus,

    habe zu hause einen pc mit win32 stehen, xampp am laufen (C:\xampp), und möchte nun ein Verzeichnis auslesen, das auf ner anderen Festplatte liegt. mit opendir() gehts auch soweit. Nur möchte ich aus den Dateinamen nun mit <a href> links machen, um die Datei herunterzuladen..

    soweit gehts schon:
    PHP-Code:
    <?php
    if ($handle opendir('F:/test')) {
        while (
    false !== ($file readdir($handle))) {
            if (
    $file != "." && $file != "..") {
                echo 
    "$file<br>";
            }
        }
        
    closedir($handle);
    }
    ?>
    aber so kanns ja nicht gehen: oder?
    PHP-Code:
    <?php
    if ($handle opendir('F:/test')) {
        while (
    false !== ($file readdir($handle))) {
            if (
    $file != "." && $file != "..") {
                echo 
    "<a href=\"$file\">$file</a><br>";
            }
        }
        
    closedir($handle);
    }
    ?>
    Ergebnis:
    http://ip/verzeichnis des quellcodes/$file
    Zuletzt geändert von DjPkR; 30.07.2007, 19:31.

  • #2
    Warum? ist http://ip/verzeichnis denn nicht die korrekte URL?

    alternativ vielleicht echo '<li><a href="file://' . $file . '">' . $file . '</a></li>';
    Zuletzt geändert von TobiaZ; 30.07.2007, 17:49.

    Kommentar


    • #3
      also, der quelltext befindet sich in C:\xampp\htdocs\download\index.php
      der generierte link sieht nun so aus als wenn sich die in F:\test befindende Datei in C:\xampp\htdocs\download\ liegen würde, was ja nicht stimmt.
      Also die Frage, was muss ich dort irgendwo einfügen, das PHP weiß, das die Datei auf der anderen Platte liegt?


      mit der alternative leider auch nicht. nun steht da nur noch file://dateiname
      also komplett ohne verzeichnisse...
      Zuletzt geändert von DjPkR; 30.07.2007, 17:55.

      Kommentar


      • #4
        Aso, wenn du die URL-Umwandlung ausgeschaltet hättest, hätte man auch den Pfad vernünftig erkennen können.

        Also die Frage, was muss ich dort irgendwo einfügen, das PHP weiß, das die Datei auf der anderen Platte liegt?
        http://das-dass.de - PHP weiß doch schon, wo die Datei liegt. Sonst könntest du wohl kaum das verzeichnis auslesen und den Dateinamen anzeigen.

        Du musst folglich nur vor dem $file noch den Pfad angeben.

        Kommentar


        • #5
          hmmm. komm nicht klar....

          also mal ganz unabhägig von dem codeschnipsel oben...

          Ich habe eine Datei auf F:\test\datei.txt
          dann habe ich eine Datei auf C:\xampp\htdocs\download\index.html
          Diese rufe ich auf, und mir wird ein link angezeigt, der bei einem Klick darauf mir die datei.txt anzeigt.

          Muss der link in der HTML datei irgendwie so wie einer der folgenden aussehen?

          <a href="file://F:\test\datei.txt">Download</a>
          <a href="http://ip/download/file://F:\test\datei.txt">Download</a>

          ??? Falls nicht, kann mir jemand anhand der konkreten Pfadangaben oben einen zusammenbasteln?

          Kommentar


          • #6
            file:///F:/test/datei.txt

            Kommentar


            • #7
              Ersteres ist richtig, wobei du keine Backslashes brauchst.
              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

              Kommentar


              • #8
                würde das nicht bedeuten, das der dann bei mir auf der platte F sucht, und nicht auf der des webservers?

                habe das nun angepasst:
                PHP-Code:
                echo '<li><a href="file:///F:/test/' $file '">' $file '</a></li>'
                jetzt kommt zumindest nichtmehr Objekt nicht gefunden...

                Kommentar


                • #9
                  Hi
                  würde das nicht bedeuten, das der dann bei mir auf der platte F sucht,...
                  Ja, sicher. Wo sonst?

                  Kommentar


                  • #10
                    dachte ich mir. das ist aber nicht gewollt. ICh habe einen pc im lan als server. dort am server auf F:\test liegt die datei, die ich von irgendwo ausm inet per dyndns ip erreichen will. Ist das jetzt klarer was ich will?

                    Kommentar


                    • #11
                      Dann musst ein kleines Skript schreiben welches die Datei einließt und dann zum Download anbietet.
                      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                      Kommentar


                      • #12
                        bis zu wieviel MB Dateigröße würdet Ihr das so machen? könnt mir vorstellen das das fget().... etc. zu lange dauert?. alternative?

                        Kommentar


                        • #13
                          könnt mir vorstellen das das fget().... etc. zu lange dauert?. alternative?
                          Mit fread in Blöcken von Dir definierter Größe.

                          LG

                          Kommentar


                          • #14
                            Warum sollte fget Probleme machen? Alternative ist die Platte als htdocs einzurichten, das verfehlt allerdings ein bisschen den Zweck.
                            Mit fread in Blöcken von Dir definierter Größe.
                            readfile ist da besser.
                            Zuletzt geändert von tontechniker; 30.07.2007, 20:07.
                            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                            Kommentar


                            • #15
                              Hi,

                              stimmt, readfile ist für den Zweck eher angebracht. fgets ist afaik bei großen Dateien sehr langsam.

                              LG

                              Kommentar

                              Lädt...
                              X