ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Download - Script erweitern

Geschlossen
  1. #1
    User Pic
    StefanTD Mitglied
    Registriert seit
    05.06.2010
    Beiträge
    12
    Beitragswertungen
    0 Beitragspunkte
    Servus,

    ich hab folgendes Problem:

    /*
    
    Magic mime file interpreter
    Copyright (c) 2004 by Phillip Berndt
    Version 1.0
    
    */
    
    function ic_mime_type ($file) {
      if (!file_exists($file)) {
        return ('application/x-object');
      }
      if(!isset($mimeData)) {
       $mimeFile = array (
          '0		string			PK\003\004		application/x-zip',
          '0    string Doc! application/msword',
          '0    string Xls! application/msexcel',
          '0    string Pdf! application/pdf',
          '0    string Ppt! application/mspowerpoint',
          '0    string Pps! application/mspowerpoint',
          '0	string		Rar!		application/x-rar',
          '257     string          ustar\0         application/x-tar       posix',
          '257     string          ustar\040\040\0         application/x-tar       gnu',
          '0	string		GIF		image/gif',
          '0	beshort		0xffd8		image/jpeg',
          '0	string		\137PNG			image/png',
          '>30		string	Copyright\ 1989-1990\ PKWARE\ Inc.	application/x-zip',
          '>30		string	PKLITE\ Copr.	application/x-zip',
        );
        foreach($mimeFile as $mimeLine) {
          if($mimeLine[0] != '#' && trim($mimeLine)) {
            if(preg_match('/^(\S+?)\s+(\S+?)\s+(\S+)(\s+(.+?))?$/si', $mimeLine, $regex_mimeDataSet)) {
              $mimeDataSet['offset'] = str_replace('>', '', $regex_mimeDataSet[1]);
              $indicator = $regex_mimeDataSet[3];
              switch($regex_mimeDataSet[2]) {
                case 'string':
                  $indicator = str_replace('\ ', ' ', $indicator);
                  $indicator = str_replace('\<', '<', $indicator);
                  $indicator = str_replace('\>', '>', $indicator);
                  $indicator = str_replace('\r', "\r", $indicator);
                  $indicator = str_replace('\n', "\n", $indicator);
                  $indicator = preg_replace('/\\\\([0-9]{3})/e', 'chr($1);', $indicator);
                  break;
                case 'byte':
                  $indicator = pack('c', @eval('return '.$indicator.';'));
                  break;
                case 'short':
                  $indicator = pack('s', @eval('return '.$indicator.';'));
                  break;
                case 'beshort':
                  $indicator = pack('n', @eval('return '.$indicator.';'));
                  break;
                case 'leshort':
                  $indicator = pack('v', @eval('return '.$indicator.';'));
                  break;
                case 'belong':
                  $indicator = pack('N', @eval('return '.$indicator.';'));
                  break;
                case 'lelong':
                  $indicator = pack('V', @eval('return '.$indicator.';'));
                  break;
                case 'long':
                  $indicator = pack('l', @eval('return '.$indicator.';'));
                  break;
              }
    
              $mimeDataSet['indicator'] = $indicator;
              $mimeDataSet['mime'] = str_replace("\r", '', $regex_mimeDataSet[5]);
    
              $mimeData[] = $mimeDataSet;
            }
          }
        }
      }
      $o = fopen ($file, "r");
      $file_content = fgets($o, 4096);
      fclose($o);
      
      $retVal = 'application/x-object';
      foreach($mimeData as $key => $mimeTest) {
        $testStr = substr($file_content, $mimeTest['offset'], strlen($mimeTest['indicator']));
        if($testStr == $mimeTest['indicator']) {
          $mimeType = $mimeTest['mime'];
          if($mimeType == '') {
            while($mimeType == '') {
              $mimeType = $mimeData[++$key]['mime'];
            }
          }
          $retVal = $mimeType;
        }
      }
      return $retVal;
    }


    Dies ist das Originale Download Script von Ilch 1.1 o.
    Die Sätze, 16 - 20, hab ich selbst eingefügt.
    Und nun das Problem:
    Ich möchte das Downloadscript um die formate: pdf, ppt, pps, doc, xla und xls erweitern.

    Bekomms aber nicht gebacken. Bitte Bitte Hilfe.

    Danke


    Zuletzt modifiziert von StefanTD am 05.06.2010 - 23:17:38
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Dazu gibts schon einige Themen: www.ilch.de/forum-showposts-20718.html

    Um viele Dateiendung einfacher zu unterstützen kann man auch statt

    ($fende != 'rar' AND $fende != 'zip' AND $fende != 'tar' AND $fende != 'exe')


    !in_array($fende, $extarray)
    verwenden und darüber das Array defininieren

    $extarray = array('rar', 'zip', ...);


    Genauso würde auch für die mime typen gehen, allerdings sollte x-object ausreichen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    StefanTD Mitglied
    Registriert seit
    05.06.2010
    Beiträge
    12
    Beitragswertungen
    0 Beitragspunkte
    Und die Änderung in der downloads.php reicht aus???

    Die Datei die ich oben aufgelistet hab, ist die:
    ic_mime_type.php
    Struktur --> ./include/includes/func/

    Aber gut Stimmt in der downloads.php hab ich vergessen die $fende zu ändern.

    Bis dato sah es so aus:
     if (
    		      ($fende != 'rar' AND $fende != 'zip' AND $fende != 'tar')
    
              OR (
              $rtype != 'application/x-rar' AND
              $rtype != 'application/x-zip' AND
              $rtype != 'application/x-tar' AND
              $rtype != 'application/msexcel' AND
              $rtype != 'application/mspowerpoint' AND
              $rtype != 'application/msword' AND
              $rtype != 'application/pdf')
    
    		    ) {
              return ('Die Datei darf nur die Endungen: .zip, .tar, .rar,.xls, .xla, .ppt, .pps, .pdf oder .doc haben.');
            }
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    StefanTD Mitglied
    Registriert seit
    05.06.2010
    Beiträge
    12
    Beitragswertungen
    0 Beitragspunkte
    Super Spitze. Hau einwandfrei hin. VIELEN DANK!:)
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten