mime.magic Problem mit PHP Fileinfo Functions

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

mime.magic Problem mit PHP Fileinfo Functions

Postby combie » 26. November 2007 14:16

XAMPP version 1.6.3a
PHP 5.2.3

Ich bekomme folgendes nicht zum laufen: http://www.php.net/manual/de/ref.fileinfo.php

Das Log sagt:

Code: Select all
[26-Nov-2007 13:56:34] PHP Warning:  finfo_open(): Failed to load magic database at '(null)'. in H:\Programme\xampp\htdocs\test.php on line 33
[26-Nov-2007 13:56:34] PHP Warning:  finfo_file(): supplied argument is not a valid file_info resource in H:\Programme\xampp\htdocs\test.php on line 34


Wobei aber:
Code: Select all
echo mime_content_type(__FILE__);
korrekt funktioniert.

Besonderheit meiner Installation:
2ten MySQL Server (alte Version) parallel
+ Tomcat
PHP auf von Modul auf CGI Betrieb umgebaut, damit ich mit mehreren Versionen, ohne umschalten, testen kann. Auch php6.

Ich habe die magic.mime schon testweise in alle PHP Verzeichnisse verteilt. Keine Besserung :cry:

Und jetzt noch meine Frage:
Wie bekomme ich das FileInfo Gedöns zum Laufen?
Wo sehe ich, wo die magic.mime liegen muß?
combie
 
Posts: 5
Joined: 26. November 2007 13:59

Postby Wiedmann » 26. November 2007 14:24

Wie bekomme ich das FileInfo Gedöns zum Laufen?

Unter Windows damit es wirklich korrekt läuft (auch mime_content_type) und nicht nur keinen Fehler produziert? Das bleibt wohl ein Traum. (Ein GNU file über exec() aufgerufen, funktioniert jedenfalls korrekt...)

BTW:
Code: Select all
PHP Warning: finfo_open(): Failed to load magic database at '(null)'.

ich habe die magic.mime schon testweise in alle PHP Verzeichnisse verteilt. Keine Besserung

Über den 2. Parameter zu finfo_open() kannst du angeben, wo diese Datei liegt. Wie sieht denn diese Zeile konkret bei dir aus?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby combie » 26. November 2007 14:44

1. Meine Zeile:
Code: Select all
$finfo = finfo_open(FILEINFO_MIME);

Meldung: Failed to load magic database at '(null)'. in .......

Code: Select all
$file = 'H:/Programme/xampp/php/extras/magic.mime';
if(is_readable($file)) echo "Lesbar!!";
$finfo = finfo_open(FILEINFO_MIME,$file);

Meldung: Lesbar!! Failed to load magic database at 'H:\Programme\xampp\php\extras\magic.mime' in .......

Eigendlich, hätte ich schon gerne, dass ich das im Sckript nicht angeben muß. Aber die Frage stellt sich ja noch gar nicht...... :D


Nachtrag:
Um Scheibfehler auszuschließen....
Code: Select all
$file = ini_get('mime_magic.magicfile');
if(is_readable($file)) echo "Lesbar!!";
$finfo = finfo_open(FILEINFO_MIME,$file);

Selber Effekt: Lesbar, aber Faild to load ...
combie
 
Posts: 5
Joined: 26. November 2007 13:59

Postby Wiedmann » 26. November 2007 15:12

Code: Select all
$file = 'H:/Programme/xampp/php/extras/magic.mime';

Du musst die Datei "magic.mime" kopieren (nicht umbenennen) nach "magic" und diese dann hier angeben.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby combie » 26. November 2007 15:51

Erst dachte ich: So ein Quark, wo ist denn da die Logik?
Aber Nein!! Es funktioniert, Danke.

KA warum das so ist, aber damit wären 99% des Problems erschlagen!

Eigendlich, hätte ich schon gerne, dass ich das im Sckript nicht angeben muß.

Das werde ich mir wohl dann abschminken können und für mein Testsystem eine Extrawurst backen müssen!?
Oder PHP selbst kompilieren?
:D Mache ich ja unter Linux auch "dauernd", wird also unter Win auch gehen! :D
combie
 
Posts: 5
Joined: 26. November 2007 13:59

Postby Wiedmann » 26. November 2007 16:13

So ein Quark, wo ist denn da die Logik?

Naja, steht im Prinzip im Manual. Warum man aber beide Dateien braucht? Keine Ahnung.

Eigendlich, hätte ich schon gerne, dass ich das im Sckript nicht angeben muß.

Im Manual steht ja eigentlich in welchem Pfad gesucht wird. Der natürlich nicht tut...

Im Quellcode der Extension stehen insgesamt 5 Pfade wo gesucht wird. Zumindest einer tut unter Windows "\etc". Warum? Keine Ahnung.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby combie » 26. November 2007 16:50

Phuuu......

Ein Verzeichniss H:\etc erstellt und magic.mime dahin kopiert.
Die eben erstellte magic und auch die alte magic.mime in extras gelöscht.

php.ini Eintrag geändert:
Code: Select all
[mime_magic]
mime_magic.magicfile = "H:\etc\magic.mime"


Und Zack:
1. Keine redundante Mime Datei
2. Ich kann auf die expliziete Angabe des Files im PHP Code verzichten.

Soweit so gut, funktionieren tuts aber noch nicht wirklich.....

Testcode:
Code: Select all
$finfo = finfo_open(FILEINFO_MIME);

$file = __FILE__;
echo mime_content_type($file).'<br>';
echo(finfo_file($finfo,$file)).'<br>';

echo '<br>';

$file = 'H:/Programme/xampp/htdocs/apache_pb2.gif';
echo mime_content_type($file).'<br>';
echo(finfo_file($finfo,$file)).'<br>';


Ausgabe:
Code: Select all
text/plain
application/x-dpkg

image/gif
application/x-dpkg

Wie man sieht, klappt das doch so noch nicht....

Es macht übrigens keinen Unterschied, ob beide Dateien in extras stecken, oder nur die eine in /etc
combie
 
Posts: 5
Joined: 26. November 2007 13:59

Postby Wiedmann » 26. November 2007 17:05

Wie man sieht, klappt das doch so noch nicht....

Die Datei "magic.mime" welche bei PHP dabei ist, funktioniert nicht richtig mit der Fileinfo extension.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby combie » 26. November 2007 17:45

Ja....
So ist es schon erheblich besser ;)
Code: Select all
text/plain
text/x-c++; charset=us-ascii

image/gif
image/gif

Danke!!

Und auch dieses war dabei hilfreich: http://pecl.php.net/bugs/bug.php?id=10565


*ps*
Hinzufügen von
Code: Select all
0   string      <?php      text/plain

Hat auch dieses geflickt... ansonsten funktionieren die meisten Typen jetzt.
combie
 
Posts: 5
Joined: 26. November 2007 13:59


Return to XAMPP für Windows

Who is online

Users browsing this forum: Nobbie and 14 guests