xenome
Goto Top

Mittels php Dateien oder Dateipfade öffnen

Hallo liebe Community,

da ich mich in den letzten Tagen ein wenig mit der installation und konfiguration eines eigenen Wikipedia für meine Firma vertraut gemacht habe, habe ich recht schnell gemerkt dass man ohn PHP-Kenntnisse nicht sonderlich weit kommt. Von daher auch dieser Thread.

Folgendes ist bis jetzt gemacht worden und ist auch lauffähig:
Installation von XAMPP auf einem Windows-System
Installation von Mediawiki in der Version 1.17.0

Nun möchte ich die aktuell noch recht standardmäßige Installation anpassen. Hierbei möchte ich jedoch das eine oder andere noch erweitern. Hierbei würde ich gerne folgende Funktion einbinden, weiß jedoch nicht wie ich das machen soll.

In einem Artikel z.B. über unsere aktuellen Projekte möchte ich gerne auf Excel-Dateien verweisen oder auch auf Ordner.
Hierbei wäre es mir ganz recht das bei der Auswahl der xls Datei diese mit excel geöffnet wird und sich nicht als download öffnet.

Ich hoffe ihr könnt mir helfen.


Grüße

Xenome

Content-ID: 172485

Url: https://administrator.de/contentid/172485

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

nxclass
nxclass 07.09.2011 um 15:34:30 Uhr
Goto Top
Prüfe mal die Header Informationen des Dokumentes wenn der Server die Datei sendet. ( 'application/xls' sollte drin stehen unter 'Content-type')
Xenome
Xenome 08.09.2011 um 08:26:09 Uhr
Goto Top
Morgen

im Header des Dokumentes beim öffnen der Datei steht der direkte Pfad zu der z.B. xls-Datei (Server/Dateipfad/Datei.xls).

Da MediaWiki alles auf verschiedene php-Dateien verteilt hätte ich jetzt auf anhieb keine Ahnung welche Datei ich da editieren sollte damit die von mir gewünschte Funktion funktioniert. Auf anhieb würde ich tippen, dass es die folgende php-Datei ist von der ich dir mal den Quelltext hier rein kopiere:

<?php

/
    • This file contains the main include file for the FileProtocolLinks extension of
    • MediaWiki. This code is released under the GNU General Public License.
*
    • As I am new to php the code for this plugin was taken from the XFNLinks Plugin.
    • Thanks to Travis Swicegood for his work.

*/

/

    • Register the FileProtocolLinks extension with MediaWiki
    */
    $wgExtensionFunctions = 'registerFileProtocolLinks';

    /
      • Sets the tag that this extension looks for and the function by which it
      • operates
    */
    function registerFileProtocolLinks()
    {
    global $wgParser;
    $wgParser->setHook('file', 'renderFileProtocolLink');
    }


    /

      • Renders a file protocol link based on the information provided by $input.
      *
        • @param string
        • The string should be in the following format:
        • URI[;link text]
        • One example for a Windows environment would be:
        • c:/something.txt|some nice text
        • @return string
        • Returns an anchor tag for the given input. For the example above
        • the return string would be
        • <a style="color:green" href="file:/c:/something.txt“>some nice text</a>
        • The links are rendered in green text color to make it easier to recognize
        • them as local shares.
      */
      function renderFileProtocolLink($input)
      {
      $exploded = explode('|', $input);
      $uri = htmlentities($exploded, ENT_COMPAT, "UTF-8");

      no linktext has been specified ==> use the URI as linktext
      $linktext = $uri;
      }
      else {
      $linktext = htmlentities($exploded[1], ENT_COMPAT, "UTF-8");
      }

      return sprintf('<a style="color:green" href="file:
      /%s">%s</a>',
      $uri, $linktext);
      }

      #credits for [[Special:Version]]
      $wgExtensionCredits['parserhook'] = array(
      'name' => 'FileProtocolLinks',
      'author' => 'Edmund Mielach',
      'description' => 'highlights links to local filesystem',
      'url' => 'http://www.mediawiki.org/wiki/Extension:FileProtocolLinks');
      ?>

      Ich hoffe dieser Quelltext hilft etwas, ansonsten schaue ich nochmal welche Dateien sonst noch so dafür verwendung finden könnten.

      Grüße

      Xenome
nxclass
nxclass 08.09.2011 um 11:34:00 Uhr
Goto Top
im Header des Dokumentes beim öffnen der Datei steht der direkte Pfad zu der z.B. xls-Datei (Server/Dateipfad/Datei.xls).
ich meinte was anderes - den Mime Type der im Response-Header des Servers steht. Es kann sein, dass dein Server da noch nicht richtig konfiguriert ist.

http://httpd.apache.org/docs/current/mod/mod_mime.html
http://httpd.apache.org/docs/current/mod/mod_mime_magic.html

EDIT: wenn du die Mod nicht installieren kannst:
erstelle eine php Datei: (dl.php)
<?php
define( 'ROOT_PATH', realpath('.').'/' );  
if (!empty($_GET['file'])) {  
    $file =  ROOT_PATH . preg_replace('/.*\//', '', $_GET['file']);  
    if (file_exists($file)) {
        $pathinfo = pathinfo($file);
        switch ($pathinfo['extension']) {  
            case 'doc':  
            case 'xls':  
                header('Content-Type: application/'.$pathinfo['extension']);  
                break;
            // usw.
            default:
                header('Content-Type: application/octet-stream');  
        }
        header('Content-Disposition: attachment; filename='.$pathinfo['basename']);  
        header('Content-Length: ' . filesize($file));  
        readfile($file);
    }
}
exit;
?>
und benutze 'dl.php?file=DieDatei.xls' im Link.