Avatar billede hoppe11 Nybegynder
17. oktober 2007 - 19:24 Der er 9 kommentarer og
1 løsning

udtrække mimetype af filer

hvordan er det muligt at udtrække mimetype fra filer?

jeg er på et webhotel hvor det ikke er muligt at installere eksterne  moduler, men kan dog godt aktivere ekstisterende som GD-lib etc.

nu hvor mime_content_type() er deprecated har jeg svært ved at finde alternativer?
Avatar billede nielle Nybegynder
17. oktober 2007 - 21:12 #1
De nævner selv fileinfo funktionerne som arvtagerne til mime_content_type:

http://dk2.php.net/manual/en/ref.fileinfo.php

Kan de ikke opfylde dine behov?
Avatar billede hoppe11 Nybegynder
17. oktober 2007 - 23:45 #2
jeg kan jo netop ikke benytte fileinfo da jeg ikke her rettigheder til at installere det og desuden må det heller ikke blive installeret for min udbyder :(

jeg søger andre alternativer - hvis de findes?
Avatar billede hoppe11 Nybegynder
17. oktober 2007 - 23:46 #3
"The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime."

Men som jeg læser det ser det her ud til at det kan compiles runtime? Men i så fald hvordan? :)
Avatar billede nielle Nybegynder
18. oktober 2007 - 08:16 #4
Det fremgik ikke af din post at fileinfo ikke allerede var installeret. Desværre ved jeg ikke hvordan man ordner det runtime, og dokumentationen på siden er heller ikke hjælpsom.

Der er dog iblandt bruger-posterne noget diskussition omkring et muligt alternativ i linux kommandoen "file".

I øvrigt har du stadig adgang til mime_content_type() - den er "kun" deprecatet, den er ikke fosvundet (endnu). Hvis det anbefalede alternativ ikke virker, så ville jeg foreslå at du fortsætter med at bruge den lidt endnu.
Avatar billede hoppe11 Nybegynder
18. oktober 2007 - 08:34 #5
PHP på serveren kører desværre også "safe_mode" så at bruge system() o.lign. funktioner er også udelukket :(

Det vil være lidt besværligt hvis man selv skal ind at læse headeren i filerne, men måske eneste alternativ. Fileinfo _burde_ være bundled i PHP!

Fatal error: Call to undefined function mime_content_type()

Må ærligt indrømme at det ser lidt skidt ud :-/
Avatar billede jgivoni Nybegynder
19. oktober 2007 - 08:20 #6
Ja, det ser lidt sort ud.
Må jeg spørge hvad du skal bruge mime-typen til?
Det kan jo være du kan sætte en enkelt system op, der kan omsætte en fileextension til mime-type. Kommer an på hvor 'sikkert' det skal være.
Hvis du kan hente filen ind via http kan du også prøve at læse de medfølgende headers og se om serveren vil give din mime-typen.
Avatar billede hoppe11 Nybegynder
22. oktober 2007 - 17:03 #7
Jeg vil gerne være sikker på at det også er den filtype den udgiver sig for at være :)

Hvordan vil du læse de medfølgende headers?
Avatar billede jgivoni Nybegynder
22. oktober 2007 - 17:35 #8
Godt spørgsmål... men måske kan det også være lige meget, for i min lille test (hvor jeg prøvede at snyde med filtype extension) viste det sig at mime_content_type gav det rigtige resultat, mens http-headeren gav det falske. Så om det vil virke kommer vel i høj grad an på om serveren er sat op til at bruge magic.mime når Content-Type header skal sendes.

Hvis du vil eksperimentere med det så skal du bruge funktionen fsockopen:
http://es.php.net/manual/en/function.fsockopen.php

Jeg har desværre ikke så meget erfaring med dette at jeg kan give dig en færdigt skript.
Avatar billede hoppe11 Nybegynder
03. januar 2008 - 18:43 #9
lukker
Avatar billede hoppe11 Nybegynder
03. januar 2008 - 18:43 #10
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester