Content Type lezen
Is er een manier om de content-type van een file uit te lezen? Ik weet dat er een functie bestaat (mime_content_type), alleen deze voldoet niet aan mijn eisen. Aangezien de mime types in de Apache file incompleet is. (Een png image geeft ie terug als text/plain). Ook heb ik gekeken naar finfo_* alleen deze is nog in een te pril stadium.
Dus weet iemand een manier?
Bedankt!
Groet,
Jason
mime_content_type is deprecated, zie de handleiding.
Zie mijn post. finfo_open etc. kan ik niet gebruiken...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$folder = 'downloads/';
$myFile = 'mimes.csv';
$theData = file ($folder.$myFile);
$extention = explode('.',$myFile);
$extention = $extention[count($extention)-1];
foreach($theData as $value){
list($mime['ext'],$mime['type']) = explode(';',$value);
//echo '<tr><td>'.$extension.'</td><td>'.$mime_type.'</tr>';
if($mime['ext'] == $extention){
$mimetype = $mime['type'];
}
}
// Soort aangeven
header('Content-type: '.$mimetype);
// Naam toekennen en zorgen dat het downloadvenster getoond wordt.
header('Content-Disposition: attachment; filename="'.$myFile.'"');
header('Content-Length: '.filesize($folder.$myFile));
readfile($folder.$myFile);
?>
$folder = 'downloads/';
$myFile = 'mimes.csv';
$theData = file ($folder.$myFile);
$extention = explode('.',$myFile);
$extention = $extention[count($extention)-1];
foreach($theData as $value){
list($mime['ext'],$mime['type']) = explode(';',$value);
//echo '<tr><td>'.$extension.'</td><td>'.$mime_type.'</tr>';
if($mime['ext'] == $extention){
$mimetype = $mime['type'];
}
}
// Soort aangeven
header('Content-type: '.$mimetype);
// Naam toekennen en zorgen dat het downloadvenster getoond wordt.
header('Content-Disposition: attachment; filename="'.$myFile.'"');
header('Content-Length: '.filesize($folder.$myFile));
readfile($folder.$myFile);
?>
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
Raar, bij mijn weten gebruik je of de ene of de andere. Dus of mime_content_type of finfo_open. Dat staat ook in de handleiding, wat voor mij altijd de leidraad is.
-- Nee het werkt niet :-P
Maar genoeg gekkigheid, ik heb het gevonden, het wordt een unix command:
trim(exec("file -bi ".escapeshellarg($filename)));
Edit:
@ Frank:
mime_content_type werkt wel, maar voldoet niet aan mijn eisen.
@ Robert:
Je checkt nu op extensie, dat is niet de bedoeling.
Gewijzigd op 01/01/1970 01:00:00 door Jason de Ridder
De locatie van die .csv file is: http://www.robertdeiman.net/phphulp/mimes.csv
Maar volgens mij moet dat van Frank ook voor de meeste files wel werken..
Edit:
Het vergt uiteraard wel wat aanpassing, maar werkt bij mij prima.. *hij bied nu elk file type ter download aan, maar ook dat is simpel aan te passen
Het vergt uiteraard wel wat aanpassing, maar werkt bij mij prima.. *hij bied nu elk file type ter download aan, maar ook dat is simpel aan te passen
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman