[C++][Source] Mime type avec libmagic
J'ai chercher un peu partout pour savoir comment retrouver le type MIME d'un fichier. Quelqu'un m'a aidé sur ce forum à trouver la librairie libmagic alors voici comment je l'ai utilisé :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| #include <magic.h>
// Le type est retourné dans le buffer type envoyé en paramètres
void File::getMimeType(char* type)
{
//Chemin de la base de donnée mime
const char * magicFile = "/usr/share/file/magic";
const char * tmp = m_path.c_str();
magic_t m = magic_open(MAGIC_MIME);
if(magic_errno(m) > 0)
{
Logger::logError(magic_error(m));
return;
}
magic_load(m, magicFile);
if(magic_errno(m) > 0)
{
Logger::logError(magic_error(m));
return;
}
const char* resultTmp = magic_file(m, tmp);
strcpy(type, resultTmp);
if(magic_errno(m) > 0)
{
Logger::logError(magic_error(m));
return;
}
magic_close(m);
if(magic_errno(m) > 0)
{
Logger::logError(magic_error(m));
return;
}
} |
N'oubliez pas d'installer la librairie libmagic!
Bonne chance.