Ankündigung

Einklappen
Keine Ankündigung bisher.

Mit PHP eine Datei (z.B. Autocad Datei) öffnen

Einklappen

Neue Werbung 2019

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

  • Mit PHP eine Datei (z.B. Autocad Datei) öffnen

    Hey,
    hab seit ein paar Wochen ein Problem! Ich möchte ein PHP Skript schreiben, in dem man, wenn man auf einen Link klickt eine Datei öffnet. Aber nicht dass sie im Browser geöffnet werden soll, sondern in dem vorgesehenen Programm dafür.
    Ein Beispiel: Eine Gimp Datei(.xcf) via klick auf den Link im Browser mit Gimp öffnen ohne sie runterzuladen zu müssen, da sie schon auf einem Laufwerk vorhanden ist.

    Danke schon mal für eure Antworten

    PS. Ist das überhaupt möglich?


  • #2
    Geht prinzipiell nicht. Der Browser entscheidet, wie er heruntergeladene Dateien behandelt.
    Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

    Kommentar


    • #3
      andererseits- wenn du einen Sauber programmierten Header vor die Ausgabe der Datei setzt(der sich leider von Datei-Typ zu Datei-Typ unterscheidet) dann fragt dich der Browser idR ob du "Download" "Öffnen" "Abbrechen" willst (jedenfalls FF und IE) - vorausgesetzt das Programm, für die Dateien ist auch anständig auf dem Zielrechner installiert ...
      "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

      Kommentar


      • #4
        Dank für eure Antworten. Ich habe es mir schon so in der Art gedacht.
        Aber wie macht es Apple dann mit Itunes.

        Wenn ich mir jetzt z.B. einen Trailer auf der Apple Seite ankucke, kann ich auf 1080p klicken und ich werde gefragt ob ich den Zugriff auf Itunes gestatte. und schwupp die wupp öffnet sich Itunes wie von Zauberhand und zeigt mir den 1080p Film

        Kommentar


        • #5
          Entweder gibt es ein Protokoll, das mit itunes verknüpft ist (e.g. itunes://url/to/file) oder eben über gegebene [MAN]header[/MAN]. Das setzt natürlich voraus, dass im Browser die Behandlung bestimmter Header richtig eingestellt ist.
          sigpic

          Kommentar


          • #6
            Danke. Wie sieht das mit den Headern aus? Kann ich damit dann jede beliebige Datei öffnen lassen oder wie?
            Könnte einer mal ein Beispiel reinstellen?

            Kommentar


            • #7
              PHP-Code:
                  $Dateiname basename($Datei);
                  
              $Groesse filesize($Datei);
                  
              $file=fopen($Datei,'r');
                  
              set_time_limit(0);
                  if (
              $file) {
                      
              header("Pragma: public");
                      
              header("Expires: 0");
                      
              header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
                      
              header("Cache-Control: private",false);
                      
              header("Content-Type: application/force-download");
                      
              header("Content-Type: application/octet-stream");
                      
              header("Content-Type: application/download");
                      
              header("Content-Disposition: attachment; filename=\"".$Dateiname."\";");
                      
              header("Content-Description: File Transfer");
                      
              header("Content-Transfer-Encoding: binary");
                      
              header('Content-Length: '.$Groesse );
                      
              flush();
                      while (!
              feof($file)) {
                          print(
              fread($file,4096));
                          
              flush();
                      }
                  }
                  
              fclose($file); 
              - damit liefere ich CSV aus , und Firefox / IE fragen beide brav, ob man speichern oder direkt in Excel öffnen möchte
              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

              Kommentar


              • #8
                Wo müsste man dass dann eintragen?
                Bei der datei direkt oder bei der fopen funktion?

                Kommentar


                • #9
                  Hi,

                  der Header muss immer vor einer Ausgabe (Datei, echo()...) gesetzt werden.

                  Kommentar


                  • #10
                    bei der Funktion, die die Datei "ausliefern" soll ..

                    Beispiel - bei mir klickt der User auf den Link

                    "CSV-Export" , der an die URL "?csvexp" (natürlich ohne die Quotes) anhängt...
                    mein Programm erkennt noch vor dem Abarbeiten des normalen Kopfes (html->head ....), dass der csvexport gewünscht wird ...

                    PHP-Code:
                    if (isset($_GET['csvexp']))
                       
                    $this->csvexport();

                    .....

                    function 
                    csvexport() {
                    // CSV Datei zusammenwürfeln (und auf dem Webserver erstellen)
                    xxx // xxx entspricht dem Block , den ich schon gepostet habe

                    die(); // Abarbeitung abbrechen, damit die Header wieder "gerade" gebogen werden
                    // Ende von csvexport 
                    so ruf ich das bei mir auf, wobei ich OOP verwende
                    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

                    Kommentar

                    Lädt...
                    X