Dateidownload mit IE geht nicht (mehr)

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

  • Dateidownload mit IE geht nicht (mehr)

    Hallo zusammen

    Ich habe kürzlich unsere Intranet-Page von nem steinalten IIS auf einen Apache portiert. Innerhalb dieser Seite gibt es einen Bereich, in diesem die verschiedenen Geschäftsbereiche Dateien, die allgein zugänglich sein sollen, zur Verfügung stellen können. Dafür kopieren sie einfach die Datei mittels FTP in eine bestimmten Ordner auf dem Webserver.

    Soweit so gut... Nur enthalten halt die Dateinamen immer mal wieder Umlaute. Das kann ich nunmal nicht verhindern. Dem IIS war das in Kombination mit dem IE schnurz egal aber der Apache hat in dieser Kombination ziemlich Mühe damit.

    Das Verzeichnis wird mit einem PHP-Script eingelesen und dann wird kurzerhand ein Link, der direkt auf die Datei zeigt, erstellt. Also so in der Art "http://www.domain.xj/files/übersicht.ppt".

    Auf dem alten Server gab das wie gesagt nie Probleme. Auf dem neuen gehts mit Firefox auch noch. Nur der IE produziert einen Fehler 404.


    Hat jemand ne Idee was da schief läuft?

    Danke und Gruss
    Philipp

  • #2
    wie werden denn die Dateien auf den Server geladen?
    Signatur-Text ...

    Kommentar


    • #3
      Dafür kopieren sie einfach die Datei mittels FTP in eine bestimmten Ordner auf dem Webserver.

      Kommentar


      • #4
        Dann ersetze doch bei dem upload die Sonderzeichen und umlaute mit str_replace()!

        ich denke aber mal, dass Ihr den Befehl copy() verwendet. Dann mach dass doch so:

        PHP-Code:
        $filename="Uploadfeld des Users ...";

        $newname={Ersetzen der umlaute und sonderzeichen ...};

        copy($filename,$newname); 
        Signatur-Text ...

        Kommentar


        • #5
          Mit FTP meine ich nicht ein Script sondern einen klassischen FTP-Client ("IE", FileZilla,...). Mir ist nicht bekannt, wie ein solcher Dateien umbenennen könnte.

          Zudem löst dies ja mein Problem nicht. Das was du vorschlägst ist ja nur wie ein Aspirin bei chronischen Schmerzen. Nur Symptombekämpfung...
          Zuletzt geändert von philippCH; 13.12.2005, 09:04.

          Kommentar


          • #6
            Vorschlag:

            Stell auf ein Download-Script um - der Link geht nicht mehr auf die Datei direkt, sondern auf ein PHP-Script, dass den Pfad zur gewünschten Datei in der Url übergeben bekommt (mit urlencode() gibts dann auch kein umlaute-Problem). Damit dann nicht alle Dateien einfach unter dem Namen des Scriptes abgespeichert werden kannst noch mit nem header den Namen mitgeben, unter dem der Client dann die Datei speichern soll.

            Such mal hier im Forum nach Download-Script oder ähnlichem, da wird sich schon was finden.
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              achso, das hab ich übersehen ...
              Ich würde sagen, dass Ihr dann die dateien vorher umbennen müsst, da z.B.: ein ":" auch in einem linkname nicht geht. Benennt die Dateien gleich mit "ae" oder ähnlich! Das selber dürfte das prob lösen.

              Oder Du schreibst ein Skript, das vor dem aufruf der datei diesen namen automatisch umwandelt und erst dann anbietet ...
              Signatur-Text ...

              Kommentar


              • #8
                Original geschrieben von Quetschi
                Vorschlag:

                Stell auf ein Download-Script um - der Link geht nicht mehr auf die Datei direkt, sondern auf ein PHP-Script, dass den Pfad zur gewünschten Datei in der Url übergeben bekommt (mit urlencode() gibts dann auch kein umlaute-Problem). Damit dann nicht alle Dateien einfach unter dem Namen des Scriptes abgespeichert werden kannst noch mit nem header den Namen mitgeben, unter dem der Client dann die Datei speichern soll.

                Such mal hier im Forum nach Download-Script oder ähnlichem, da wird sich schon was finden.
                oder so ...
                Signatur-Text ...

                Kommentar


                • #9
                  dann versuch ichs halt mal so...

                  Kann mir jemand vielleicht grad sagen, wie ich am schnellsten/einfachsten die Dateiendung ausfindig machen kann? Muss ja irgendwie den MIME-Type ausfindig machen...

                  Kommentar


                  • #10
                    habs schon lösen können...

                    danke für eure Hilfe.

                    Kommentar


                    • #11
                      büddeschön - wie hast du's nun gemacht? Download-Script? oder andere Lösung gefunden?
                      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                      Schön - etwas Geschichte kann ja nicht schaden.
                      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                      Kommentar


                      • #12
                        So hab ichs gemacht:

                        PHP-Code:
                        <? 
                        session_start();

                        $filename = $_GET["filename"];
                        $filepath = $_GET["file"];
                        // die Dateiendung extrahieren
                        $exp = explode(".", $filepath);
                        $count = count($exp);
                        $endung = strtolower($exp[$count-1]);
                        // Fehlende MIME-Typen müssen in dieser Datei ergänzt werden
                        include($_SERVER['DOCUMENT_ROOT'] . "/files/mimetypen.php");

                        if (file_exists($filepath)) {
                            header('Content-Type: '.$mime);  // MIME-Type zuweisen   
                            header('Content-Disposition: attachment; filename='.$filename); // File als Attachment übergeben, damit es nicht im Browser geöffent wird
                        // Diese Datei hat nichts direkt mit dem Download zu tun...
                            include($_SERVER['DOCUMENT_ROOT'] . "/nph-auth.php");
                            readfile($filepath); // File anzeigen
                        } else {
                            echo "File doesn't exist";
                        }
                        ?>
                        In der Datei "mimetypen.php" hab ich einfach nen switch der aufgrund der mit explode extrahierten Dateiendung den Mime-Type zuweist.
                        Zuletzt geändert von philippCH; 13.12.2005, 10:51.

                        Kommentar

                        Lädt...
                        X